with one click
asc-metadata-sync
// Sync and validate App Store metadata and localizations with asc, including Fastlane format migration. Use when updating metadata or translations.
// Sync and validate App Store metadata and localizations with asc, including Fastlane format migration. Use when updating metadata or translations.
Track build processing, find latest builds, and clean up old builds with asc. Use when managing build retention or waiting on processing.
Guidance for using the App Store Connect CLI in this repo (flags, output formats, pagination, auth, and discovery). Use when asked to run or design asc commands or interact with App Store Connect via the CLI.
Resolve App Store Connect IDs (apps, builds, versions, groups, testers) from human-friendly names using asc. Use when commands require IDs.
Set territory-specific pricing for subscriptions and in-app purchases using purchasing power parity (PPP). Use when adjusting prices by country or implementing localized pricing strategies.
End-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. Use when asked to upload a build, distribute to TestFlight, or submit to App Store.
Set up bundle IDs, capabilities, signing certificates, and provisioning profiles with the asc CLI. Use when onboarding a new app or rotating signing assets.
| name | asc-metadata-sync |
| description | Sync and validate App Store metadata and localizations with asc, including Fastlane 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 app-infos 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" --output "./metadata"
asc migrate validate --fastlane-dir "./metadata"
This checks character limits and required fields.
asc migrate import --app "APP_ID" --fastlane-dir "./metadata"
# What's New
asc app-info set --app "APP_ID" --locale "en-US" --whats-new "Bug fixes and improvements"
# Description
asc app-info set --app "APP_ID" --locale "en-US" --description "Your app description here"
# Keywords
asc app-info set --app "APP_ID" --locale "en-US" --keywords "keyword1,keyword2,keyword3"
# Support URL
asc app-info set --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 migrate validate to check limits before upload.
--type flag.asc migrate validate enforces character limits before upload.asc localizations list to confirm available locales and IDs.