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 • Quick Start • Usage • 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 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 <key>.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 <key>.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 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 practices. 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? 🎩
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 | <metadata_path> |
copyright.txt |
primary_category |
No | <metadata_path> |
primary_category.txt |
secondary_category |
No | <metadata_path> |
secondary_category.txt |
primary_first_sub_category |
No | <metadata_path> |
primary_first_sub_category.txt |
primary_second_sub_category |
No | <metadata_path> |
primary_second_sub_category.txt |
secondary_first_sub_category |
No | <metadata_path> |
secondary_first_sub_category.txt |
secondary_second_sub_category |
No | <metadata_path> |
secondary_second_sub_category.txt |
Localized Metadata
Key | Editable While Live | Directory | Filename |
---|---|---|---|
name |
No | <metadata_path>/<lang>/ |
name.txt |
subtitle |
No | <metadata_path>/<lang>/ |
subtitle.txt |
privacy_url |
Yes | <metadata_path>/<lang>/ |
privacy_url.txt |
apple_tv_privacy_policy |
No | <metadata_path>/<lang>/ |
apple_tv_privacy_policy.txt |
description |
Yes | <metadata_path>/<lang>/ |
description.txt |
keywords |
No | <metadata_path>/<lang>/ |
keywords.txt |
release_notes |
Yes | <metadata_path>/<lang>/ |
release_notes.txt |
support_url |
Yes | <metadata_path>/<lang>/ |
support_url.txt |
marketing_url |
Yes | <metadata_path>/<lang>/ |
marketing_url.txt |
promotional_text |
Yes | <metadata_path>/<lang>/ |
promotional_text.txt |
Review Information Metadata
Key | Editable While Live | Directory | Filename | Deprecated Filename |
---|---|---|---|---|
first_name |
Yes | <metadata_path>/review_information |
first_name.txt |
review_first_name.txt |
last_name |
Yes | <metadata_path>/review_information |
last_name.txt |
review_last_name.txt |
phone_number |
Yes | <metadata_path>/review_information |
phone_number.txt |
review_phone_number.txt |
email_address |
Yes | <metadata_path>/review_information |
email_address.txt |
review_email.txt |
demo_user |
Yes | <metadata_path>/review_information |
demo_user.txt |
review_demo_user.txt |
demo_password |
Yes | <metadata_path>/review_information |
demo_password.txt |
review_demo_password.txt |
notes |
Yes | <metadata_path>/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’t 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’t 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 |
screenshot_processing_timeout |
Timeout in seconds to wait before considering screenshot processing as failed, used to handle cases where uploads to the App Store are stuck in processing | 3600 |
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 |
version_check_wait_retry_limit |
After submitting a new version, App Store Connect takes some time to recognize the new version and we must wait until it's available before attempting to upload metadata for it. There is a mechanism that will check if it's available and retry with an exponential backoff if it's not available yet. This option specifies how many times we should retry before giving up. Setting this to a value below 5 is not recommended and will likely cause failures. Increase this parameter when Apple servers seem to be degraded or slow | 7 |
automatic_release |
Should the app be automatically released once it's approved? (Cannot be used together with auto_release_date ) |
|
auto_release_date |
Date in milliseconds for automatically releasing on pending approval (Cannot 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