swiftship/internal/skills/data/features/asc-metadata-sync/SKILL.md
Sync, validate, and translate App Store metadata and localizations with asc CLI, including LLM-powered translation and legacy metadata format migration. Use when updating metadata, translations, or adding new languages.
npx skillsauth add abdullah4ai/apple-dev-docs 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, and to translate metadata to multiple languages.
--help for the exact asc version.--app, --version, --version-id, --type, --app-info).--output table only for human verification steps.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 --help
asc migrate import --help
asc app-info set --app "APP_ID" --locale "en-US" --whats-new "Bug fixes"
asc app-info set --app "APP_ID" --locale "en-US" --description "Your description"
asc app-info set --app "APP_ID" --locale "en-US" --keywords "keyword1,keyword2"
asc app-info set --app "APP_ID" --locale "en-US" --support-url "https://support.example.com"
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"
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"
Version localizations:
"description" = "Your app description";
"keywords" = "keyword1,keyword2,keyword3";
"whatsNew" = "What's new in this version";
"supportUrl" = "https://support.example.com";
App-info localizations:
"name" = "Your App Name";
"subtitle" = "Your subtitle";
"privacyPolicyUrl" = "https://example.com/privacy";
asc apps list --output table
asc versions list --app "APP_ID" --state PREPARE_FOR_SUBMISSION --output table
asc app-infos list --app "APP_ID" --output table
asc localizations download --version "VERSION_ID" --path "./localizations"
asc localizations download --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
See references/translation-guidelines.md for detailed translation rules, prompt template, and locale list.
# Version localizations
asc localizations upload --version "VERSION_ID" --path "./localizations"
# App-info localizations
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
asc localizations list --version "VERSION_ID" --output table
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --output table
| Field | Limit | |-------|-------| | Name | 30 | | Subtitle | 30 | | Keywords | 100 (comma-separated) | | Description | 4000 | | What's New | 4000 | | Promotional Text | 170 |
Always validate translated text fits within limits before uploading. Use asc migrate validate to check.
--type flag.head -1.promotionalText can be updated anytime without a new version submission.whatsNew is only relevant for updates, not the first version.asc-subscription-localization skill.testing
Use for 3D games: racing, 3D sports, board games, marble maze, tower defense, bowling. SceneKit + SceneView architecture, 3D scene hierarchy, physics, game loop, primitives, materials, cameras, particles, audio.
documentation
Game UI patterns: SwiftUI HUD overlays on SpriteKit, menus (main/pause/game-over), virtual joystick/d-pad, score displays, health bars, tutorial onboarding.
tools
Download free game sprites/textures/3D models and generate procedural assets. Covers nw_download_asset tool, texture factories, sprite atlas organization, 3D model loading, and programmatic asset creation.
testing
Use for 2D games: arcade, puzzle, sports, ping pong, platformer, shooter, 2D racing. SpriteKit + SpriteView architecture, scene hierarchy, physics, game loop, audio, particles, game feel.