ai/ios-skills/ios-asc-metadata-sync/SKILL.md
Sync and validate App Store metadata and localizations with asc, including legacy metadata format migration. Use when updating metadata or translations.
npx skillsauth add kurko/dotfiles asc-metadata-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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"
# Use --help to discover flags for your metadata directory
asc migrate validate --help
This checks character limits and required fields.
# Use --help to discover flags for your metadata directory
asc migrate import --help
# 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.tools
Create a GitHub pull request from the current branch. Use when user asks to create a PR, open a PR, submit a PR, push and create PR, or similar pull request workflows. Activates for phrases like "create a PR", "open a pull request", "submit PR", "push and PR", "make a PR for this", "open a draft PR".
data-ai
Merge the current worktree branch into main and sync main back. Use when the user says "merge to main", "ship it", "merge and continue", or after completing a task in a worktree and wanting to continue with the next one.
tools
Synchronize AI agent skills, commands, configs, permissions, hooks, and instructions across Claude Code, Codex CLI, and other Agent Skills-compatible tools. Use when the user asks to pull skills from Claude into Codex, sync Codex work back to Claude, migrate agent commands, reconcile frontmatter, update permissions, or keep agent setup files in parity.
testing
Write or update UI-independent use cases for QA. Use when the user says "write use cases", "add use cases", "QA use cases", "update use cases", "compose use cases", or when starting implementation of a new feature (after plan approval). Also activates for "what should we test", "regression cases", or "use cases for QA".