asc-metadata-sync

rudrankriyam/app-store-connect-cli-skills · updated Apr 8, 2026

$npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-metadata-sync
0 commentsdiscussion
summary

Sync App Store Connect metadata and localizations with validation and legacy format migration support.

  • Manage two localization types: version-specific fields (description, keywords, what's new, support/marketing URLs) and app-level fields (name, subtitle, privacy policy)
  • Download, validate, and upload .strings files in bulk for multi-language workflows with built-in character limit enforcement
  • Export current metadata state, validate against App Store requirements, and import updates
skill.md

asc metadata sync

Use this skill to keep local metadata in sync with App Store Connect.

Two Types of Localizations

1. Version Localizations (per-release)

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"

2. App Info Localizations (app-level)

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.

Legacy Fastlane Metadata Workflow

Export current state

asc migrate export --app "APP_ID" --version-id "VERSION_ID" --output-dir "./fastlane"

Validate local files

asc migrate validate --fastlane-dir "./fastlane"

This checks character limits and required fields.

Import updates

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"

Quick Field Updates

Version-specific fields

# 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"

Version metadata

# 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

TestFlight notes

asc build-localizations create --build "BUILD_ID" --locale "en-US" --whats-new "TestFlight notes here"

.strings File Format

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";

Multi-Language Workflow

  1. Export all localizations:
asc localizations download --version "VERSION_ID" --path "./localizations"
  1. Translate the .strings files (or use translation service)

  2. Upload all at once:

asc localizations upload --version "VERSION_ID" --path "./localizations"
  1. Verify:
asc localizations list --version "VERSION_ID" --output table

Character Limits

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.

Notes

  • Version localizations and app info localizations are different; use the right command and --type flag.
  • Use asc localizations list to confirm available locales and IDs.
  • Privacy Policy URL is in app info localizations, not version localizations.

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.643 reviews
  • Benjamin Diallo· Dec 28, 2024

    asc-metadata-sync is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Li Gonzalez· Dec 28, 2024

    asc-metadata-sync fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Ama Wang· Dec 24, 2024

    asc-metadata-sync reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Mateo Wang· Dec 24, 2024

    I recommend asc-metadata-sync for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Ganesh Mohane· Dec 8, 2024

    asc-metadata-sync has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Rahul Santra· Nov 27, 2024

    Keeps context tight: asc-metadata-sync is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Alexander Thompson· Nov 23, 2024

    Keeps context tight: asc-metadata-sync is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Li Rahman· Nov 19, 2024

    We added asc-metadata-sync from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Kwame Brown· Nov 15, 2024

    Useful defaults in asc-metadata-sync — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Pratham Ware· Oct 18, 2024

    We added asc-metadata-sync from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

showing 1-10 of 43

1 / 5