Sync and validate App Store metadata and localizations with asc, including legacy metadata format migration. Use when updating metadata or translations.
Use this skill to keep local metadata in sync with App Store Connect.
Fields: description, keywords, whatsNew, supportUrl, marketingUrl, promotionalText
# List version localizations
asc localizations list --version "VERSION_ID"
# Download
asc localizations download --version "VERSION_ID" --path "./localizations"
# Upload from .strings files
asc localizations upload --version "VERSION_ID" --path "./localizations"
Fields: name, subtitle, privacyPolicyUrl, privacyChoicesUrl, privacyPolicyText
# First, find the app info ID
asc apps info list --app "APP_ID"
# List app info localizations
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID"
# Upload app info localizations
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
Note: If you get "multiple app infos found", you must specify --app-info with the correct ID.
asc migrate export --app "APP_ID" --version-id "VERSION_ID" --output-dir "./fastlane"
asc migrate validate --fastlane-dir "./fastlane"
This checks character limits and required fields.
asc migrate import --app "APP_ID" --version-id "VERSION_ID" --fastlane-dir "./fastlane" --dry-run
asc migrate import --app "APP_ID" --version-id "VERSION_ID" --fastlane-dir "./fastlane"
# What's New
asc apps info edit --app "APP_ID" --locale "en-US" --whats-new "Bug fixes and improvements"
# Description
asc apps info edit --app "APP_ID" --locale "en-US" --description "Your app description here"
# Keywords
asc apps info edit --app "APP_ID" --locale "en-US" --keywords "keyword1,keyword2,keyword3"
# Support URL
asc apps info edit --app "APP_ID" --locale "en-US" --support-url "https://support.example.com"
# Copyright
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"
# Release type
asc versions update --version-id "VERSION_ID" --release-type AFTER_APPROVAL
asc build-localizations create --build "BUILD_ID" --locale "en-US" --whats-new "TestFlight notes here"
For bulk updates, use .strings files:
// en-US.strings
"description" = "Your app description";
"keywords" = "keyword1,keyword2,keyword3";
"whatsNew" = "What's new in this version";
"supportUrl" = "https://support.example.com";
For app-info type:
// en-US.strings (app-info type)
"privacyPolicyUrl" = "https://example.com/privacy";
"name" = "Your App Name";
"subtitle" = "Your subtitle";
asc localizations download --version "VERSION_ID" --path "./localizations"
Translate the .strings files (or use translation service)
Upload all at once:
asc localizations upload --version "VERSION_ID" --path "./localizations"
asc localizations list --version "VERSION_ID" --output table
| Field | Limit |
|---|---|
| Name | 30 |
| Subtitle | 30 |
| Keywords | 100 (comma-separated) |
| Description | 4000 |
| What's New | 4000 |
| Promotional Text | 170 |
Use asc metadata validate --dir "./metadata" for canonical metadata trees.
Use asc migrate validate --fastlane-dir "./fastlane" for legacy fastlane-format metadata.
--type flag.asc localizations list to confirm available locales and IDs.