asc metadata sync

SkillDev tools

Sync and validate App Store metadata and localizations with asc, including legacy metadata format migration. Use when updating metadata or translations.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the asc metadata sync skill

What this skill tells your AI

The instructions your AI receives, as published by n0an/vivadicta in .agents/skills/asc-metadata-sync/SKILL.md and read by ahel’s review.

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

FieldLimit
Name30
Subtitle30
Keywords100 (comma-separated)
Description4000
What's New4000
Promotional Text170

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.

Signals

GitHub stars
112
Forks
10
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
asc-metadata-sync-n0an
Source
github.com/n0an/vivadicta