see adb --help for more details
The output of the adb command
Fetches device list via adb, e.g. run an adb command on all connected devices.
Returns an array of all currently connected android devices (ex: )
Modify the default list of supported platforms
This will automatically tag your build with the following format: <grouping>/<lane>/<prefix><build_number><postfix>
, 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
.
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
.
Load the App Store Connect API token to use in other fastlane tools and actions
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.
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.
Check out the device_grid guide for more information
The URL to preview the iPhone app
Run UI test by Appium with RSpec
Runs appledoc [OPTIONS] <paths to source dirs or files>
for the project
Using upload_to_app_store after build_app and capture_screenshots will automatically upload the latest ipa and screenshots with no other configuration.
If you don't want to verify an HTML preview for App Store builds, use the :force
option.
This is useful when running fastlane on your Continuous Integration server:
_upload_to_app_store_(force: true)
If your account is on multiple teams and you need to tell the iTMSTransporter
which 'provider' to use, you can set the :itc_provider
option to pass this info.
Upload dSYM file to Apteligent (Crittercism)
Connect to the artifactory server using either a username/password or an api_key
Configures Xcode's Codesigning options of all targets in the project
The current status (boolean) of codesigning after modification
This action backs up your file to "[path].back"
Save your [zipped] xcarchive elsewhere from default path
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 -- <path>/Assets.xcassets/'
.
This should be called from danger. More information in the device_grid guide.
Run ./gradlew tasks
to get a list of all available gradle tasks for your project
The output of running the gradle task
More information: https://fastlane.tools/gym
The absolute path to the generated ipa file
More information: https://fastlane.tools/gym
The absolute path to the generated ipa file
More information: https://fastlane.tools/gym
The absolute path to the generated ipa file
This action runs bundle install
(if available)
Automated localized screenshots of your Android app (via screengrab)
Generate new localized screenshots on multiple devices (via snapshot)
Alias for the captureIosScreenshots
action
Runs carthage
for your project
Important*: 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. Use this action to download the latest code signing identity.
By default, messages will be collected back to the last tag, but the range can be controlled
Returns a String containing your formatted git commits
Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html
More information: https://fastlane.tools/precheck
true if precheck passes, else, false
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.
Remove the cache for pods
Deletes the Derived Data from path set on Xcode or a supplied path
Copies a given string into the clipboard. Works only on macOS
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.
If you use CocoaPods you can use the cocoapods
integration to run pod install
before building your app.
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.
A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message'
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|
.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.
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.
Create new apps on Managed Google Play.
Create new apps on App Store Connect and Apple Developer Portal via produce.
If the app already exists, create_app_online
will not do anything.
For more information about _produce_, visit its documentation page: https://docs.fastlane.tools/actions/produce/.
Create a new Keychain
This will create a new pull request on GitHub
The pull request URL when successful
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.
Formalize your Pull Request etiquette. More information: https://github.com/danger/danger.
Print out an overview of the lane context values
Defines a default platform to not have to specify the platform
Keychains can be deleted after being created with create_keychain
Using upload_to_app_store after build_app and capture_screenshots will automatically upload the latest ipa and screenshots with no other configuration.
If you don't want to verify an HTML preview for App Store builds, use the :force
option.
This is useful when running fastlane on your Continuous Integration server:
_upload_to_app_store_(force: true)
If your account is on multiple teams and you need to tell the iTMSTransporter
which 'provider' to use, you can set the :itc_provider
option to pass this info.
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.
More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg.
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 App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details
This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled.| |
```ruby| 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|
```|
|
More information: https://docs.fastlane.tools/actions/download_from_play_store/
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
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
You can manually specify the path to the xcarchive (not needed if you use xcodebuild
/xcarchive
to build your archive)
Alias for the puts
action
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.
This action will check if some environment variables are set.
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.
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
.
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.
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
).
Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val
Renders an ERB template with :placeholders
given as a hash via parameter.
If no :destination
is set, it returns the rendered template as string.
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.
To obtain the token, create a new incoming message webhook in your Flock admin panel.
Uses frameit to prepare perfect screenshots for the App Store, your website, QA or emails. You can add background and titles to the framed screenshots as well.
Uses frameit to prepare perfect screenshots for the App Store, your website, QA or emails. You can add background and titles to the framed screenshots as well.
Generate summarized code coverage reports using gcovr
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.
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.
The build number from the current repository
Important*: 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. Use this action to download the latest code signing identity.
This will return all information about a release. For example:| |
```no-highlight| {| "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 a value from a plist file, which can be used to fetch the app identifier and more information about your app
This is useful for introspecting Info.plist files for .ipa
files that have already been built.
Returns the value in the .ipa's Info.plist corresponding to the passed in Key
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
.
An URI to obtain publishing rights for custom apps on Managed Play Store
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.
The UUID of the profile sigh just fetched/generated
Additionally to the available options, you can also specify a block that only gets executed if a new profile was created. You can use it to upload the new profile to your server. Use it like this:| |
```ruby| get_push_certificate(| new_profile: proc do|
end| )|
```|
|
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.
Directly add the given file or all files
If no branch could be found, this action will return an empty string. If FL_GIT_BRANCH_DONT_USE_ENV_VARS
is true
, it'll ignore CI ENV vars. This is a wrapper for the internal action Actions.git_branch
Directly commit the given file with the given message
Executes a simple git pull command
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
Executes a git submodule update command
Checks if the git tag with the given name exists in the current repo
Boolean value whether the tag exists or not
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.
A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json).
More information: https://docs.fastlane.tools/actions/supply/
Array of strings representing the release names for the given Google Play track
More information: https://docs.fastlane.tools/actions/supply/
Array of integers representing the version codes for the given Google Play track
Run ./gradlew tasks
to get a list of all available gradle tasks for your project
The output of running the gradle task
More information: https://fastlane.tools/gym
The absolute path to the generated ipa file
This will add a hg tag to the current branch
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|
.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.
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.
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’s actions.
Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status.
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.
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.
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 certificates (and private keys) into the current default keychain. Use the create_keychain
action to create a new keychain.
This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository.
Increment the build number of your project
The new build number
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.
The new version number
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 brew install ios-deploy
Install provisioning profile from path for current user
The absolute path to the installed provisioning profile
Install an Xcode plugin for the current user
Upload a new build to Installr
Easily build and sign your app using shenzhen
The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service
Generate docs using Jazzy
Leave a comment on a Jira ticket
A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more
Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context.
Return last git commit hash, abbreviated commit hash, commit message and author
Returns the following dict: {commit_hash: "commit hash", abbreviated_commit_hash: "abbreviated commit hash" author: "Author", author_email: "author email", message: "commit message"} (ex: [object Object])
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.
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.
Integer representation of the latest build number uploaded to TestFlight (ex: 2)
Generates coverage data using lcov
Send a success/error message to an email group
This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build.
More information: https://docs.fastlane.tools/actions/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/
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.
The options are the same as :enable_services
in the produce action
Upload a file to Sonatype Nexus platform
Notarizes a macOS app
Display a macOS notification with custom message and title
Shows a macOS notification - use notification
instead
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.
The total number of all commits in current git branch
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.
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.
fastlane doesn't have crash reporting anymore. Feel free to remove opt_out_crash_reporting
from your Fastfile.
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.
Additionally to the available options, you can also specify a block that only gets executed if a new profile was created. You can use it to upload the new profile to your server. Use it like this:| |
```ruby| get_push_certificate(| new_profile: proc do|
end| )|
```|
|
More details can be found on https://docs.fastlane.tools/actions/pilot/. This integration will only do the TestFlight upload.
Test the syntax of your Podfile by linting the pod against the files of its directory
Push a Podspec to Trunk or a private repository
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).
More information: https://fastlane.tools/precheck
true if precheck passes, else, false
Alias for the puts
action
Create new apps on App Store Connect and Apple Developer Portal via produce.
If the app already exists, create_app_online
will not do anything.
For more information about _produce_, visit its documentation page: https://docs.fastlane.tools/actions/produce/.
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.
If you only want to push the tags and nothing else, you can use the push_git_tags
action
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.
Prints out the given text
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).
Recreate not shared Xcode project schemes
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.
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']
.
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.| |
Shutdown and reset running simulators
Codesign an existing ipa file
This action restore your file that was backed up with the backup_file
action
Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space.
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.
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.
More information: https://docs.fastlane.tools/actions/scan/
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
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.
This action speaks the given text out loud
More information: https://docs.fastlane.tools/actions/scan/
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
Transfer files via SCP
Alias for the captureAndroidScreenshots
action
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.
This is useful if you have only one changelog for all languages.
You can store the changelog in ./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.
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.
A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body'
Sets value to Info.plist of your project as native Ruby data structures
Adds a key to cocoapods-keys
readonly
mode to not create new profiles/cert on CI|| This action helps with CI integration. Add this to the top of your Fastfile if you use CI.
readonly
mode to not create new profiles/cert on CI|| This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI.
| 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.
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.
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.
Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it
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.
The UUID of the profile sigh just fetched/generated
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
.
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.
Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather.
Alias for the captureIosScreenshots
action
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.
The exit code of the sonar-scanner binary
Generate docs using SourceDocs
Find, print, and copy Spaceship logs
The array of Spaceship logs
Print out Spaceship stats from this session (number of request to each domain)
Upload dSYM file to Splunk MINT
Runs Swift Package Manager on your project
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.
More information: https://docs.fastlane.tools/actions/supply/
Run swift code validation using SwiftLint
More information: https://docs.fastlane.tools/actions/match/
Specify the Team ID you want to use for the Apple Developer Portal
Set a team to use by its name
You can retrieve your API key on your settings page
More details can be found on https://docs.fastlane.tools/actions/pilot/. This integration will only do the TestFlight upload.
Convert the Xcode plist log to a JUnit report
A hash with the key being the path of the generated file, the value being if the tests were successful
More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release
Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer
and access_token
.
Post a message to Typetalk
Unlocks the given keychain file and adds it to the keychain search list.
Keychains can be replaced with add_to_search_list: :replace
.
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 an app identifier by either setting CFBundleIdentifier
or PRODUCT_BUNDLE_IDENTIFIER
, depending on which is already in use.
Configures Xcode's Codesigning options of all targets in the project
The current status (boolean) of codesigning after modification
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.
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.
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.
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.
This action allows you to modify any value inside any plist
file.
Updated code signing settings from 'Automatic' to a specific 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.*")
.
This action updates the Developer Team ID of your Xcode project.
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.
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.
Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details
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.
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.
The uploaded dSYM path(s)
Using upload_to_app_store after build_app and capture_screenshots will automatically upload the latest ipa and screenshots with no other configuration.
If you don't want to verify an HTML preview for App Store builds, use the :force
option.
This is useful when running fastlane on your Continuous Integration server:
_upload_to_app_store_(force: true)
If your account is on multiple teams and you need to tell the iTMSTransporter
which 'provider' to use, you can set the :itc_provider
option to pass this info.
More information: https://docs.fastlane.tools/actions/supply/
Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).
More details can be found on https://docs.fastlane.tools/actions/pilot/. This integration will only do the TestFlight upload.
Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API
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.
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.
This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation.
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
).
Receive the version number from a podspec file
Archives the project using xcodebuild
Builds the project using xcodebuild
Cleans the project using xcodebuild
Exports the project using xcodebuild
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.
The path to the newly installed Xcode version
Select and build with the Xcode installed at the provided path.
Use the xcodes
action if you want to select an Xcode:
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.
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
The path to the newly installed Xcode version
Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required). More information: https://github.com/nakiostudio/xcov.
Runs tests on the given simulator
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/.
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.
Compress a file or folder to a zip
The path to the output zip file
Generated using TypeDoc
Main Class