Appstore metadata sync
Swift-focused AI agent skills for iOS and macOS: build, debug, simulator, SwiftUI, Xcode, App Store workflows. Part of Plug'n Skills.
npx -y skills add Xopoko/build-swift-apps --skill appstore-metadata-syncAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Use when App Store listing metadata in canonical `./metadata` JSON needs field edits, validation, push, keyword sync, or legacy fastlane migration. Not for translation-first localization, release-note drafting, or subscription/IAP display-name localizations.
SKILL.md
2.2 KB, as published. Nobody here has run it
App Store Metadata Sync
Prefer canonical asc metadata JSON for app-info and version fields. Use .strings or fastlane flows only when specifically needed.
Use appstore-metadata-localizer when the main work is translation/adaptation across locales. Use appstore-release-notes-writer for What's New copy. Use appstore-subscription-localizer for subscription, group, or IAP display-name localizations.
Command Plan Helper
For a deterministic dry-run command plan, run the helper from the plugin root:
python3 "$PLUGIN_ROOT/skills/appstore-metadata-sync/scripts/metadata_sync_plan.py" \
--app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" \
--app-info "APP_INFO_ID" --version-id "VERSION_ID" \
--include-keywords --keywords-csv "./keywords.csv"
The helper prints commands only; it does not call ASC, mutate metadata, or read credentials. Pass --json for machine-readable output. Pass --confirming-actions only after manually verifying generated --confirm commands.
Workflow
- Pull canonical metadata JSON into
./metadatabefore editing unless the user already provided a fresh metadata tree. - Resolve
APP_INFO_IDwhen multiple app-info records exist. - Edit the owning JSON fields: app-info fields for name/subtitle/privacy text and version fields for description, keywords, marketing URL, promotional text, support URL, and What's New.
- Validate locally, then run
push --dry-run; apply/push without dry-run only after the diff and target app/version are confirmed. - Use alternate
.stringsor fastlane migration flows only for legacy repos or explicit user requests.
Limits: name/subtitle 30, keywords 100, description/What's New 4000, promotional text 170. Use table output for human verification and JSON for automation.
References
references/appstore-metadata-sync.mdfor detailed canonical JSON, keyword, quick-edit,.strings, and fastlane commands.