Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
rudrankriyam avatar

Asc Metadata Sync

  • 2.5k installs
  • 934 repo stars
  • Updated July 21, 2026
  • rudrankriyam/app-store-connect-cli-skills

asc-metadata-sync is a skill for App Store Connect metadata pull, validate, push, and keyword workflows via asc CLI.

About

asc metadata sync keeps App Store metadata aligned with App Store Connect using the canonical asc metadata workflow for app-info and version localization fields. Pull writes metadata/app-info locale JSON for name, subtitle, and privacy URLs plus metadata/version locale JSON for description, keywords, marketing URL, promotional text, support URL, and whatsNew. Validate runs before any remote write, with an optional subscription-app Terms of Use heuristic. Push and apply support dry-run previews before applying changes. Keyword-only workflows use metadata keywords diff, apply, import, and sync commands. Quick field updates use apps info edit with explicit version-id or version plus platform selectors. Lower-level asc localizations commands handle strings files when requested, and asc migrate supports legacy fastlane-format trees only. Character limits cover name thirty, subtitle thirty, keywords one hundred, and description four thousand characters.

  • Canonical asc metadata pull, validate, and push workflow.
  • Separate app-info and version localization JSON paths.
  • Dry-run preview before remote metadata writes.
  • Keyword-only diff, apply, import, and sync commands.
  • Documented character limits for name, subtitle, and keywords.

Asc Metadata Sync by the numbers

  • 2,550 all-time installs (skills.sh)
  • +28 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #83 of 1,048 Mobile Development skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

asc-metadata-sync capabilities & compatibility

Capabilities
canonical metadata pull into json directory tree · pre push metadata validate with subscription heu · dry run and apply push for version and app info · keyword diff, apply, import, and sync workflows · legacy fastlane migrate export and import
Use cases
seo · marketing
Pricing
Free
From the docs

What asc-metadata-sync says it does

asc metadata pull --app "APP_ID" --version "1.2.3"
SKILL.md
Keywords | 100 comma-separated characters
SKILL.md
npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-metadata-sync

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2.5k
repo stars934
Security audit3 / 3 scanners passed
Last updatedJuly 21, 2026
Repositoryrudrankriyam/app-store-connect-cli-skills

How do I sync and validate App Store metadata locally before pushing to App Store Connect?

Pull, validate, and push App Store Connect metadata with asc metadata pull, validate, and dry-run workflows.

Who is it for?

iOS developers managing App Store localizations and keywords with the asc CLI.

Skip if: Skip for Google Play metadata, binary uploads, or TestFlight build management only.

When should I use this skill?

User runs asc metadata pull, validate, push, keywords sync, or fastlane metadata migration.

What you get

Validated local metadata tree with dry-run verified push to App Store Connect.

  • Synced App Store metadata
  • Validated localization and keyword fields

Files

SKILL.mdMarkdownGitHub ↗

asc metadata sync

Use this skill to keep App Store metadata in sync with App Store Connect. Prefer the canonical asc metadata workflow for app-info and version localization fields. Use the lower-level asc localizations and asc migrate commands only when the user specifically needs .strings files or legacy fastlane-format metadata.

Current canonical workflow

1. Pull canonical metadata

asc metadata pull --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"

If the app has multiple app-info records, resolve the app-info ID first and pass it explicitly:

asc apps info list --app "APP_ID" --output table
asc metadata pull --app "APP_ID" --app-info "APP_INFO_ID" --version "1.2.3" --platform IOS --dir "./metadata"

2. Edit local files

Canonical files are written under:

  • metadata/app-info/<locale>.json for app-level fields: name, subtitle, privacyPolicyUrl, privacyChoicesUrl, privacyPolicyText
  • metadata/version/<version>/<locale>.json for version fields: description, keywords, marketingUrl, promotionalText, supportUrl, whatsNew

Copyright is not a localization field. Manage it with:

asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"

3. Validate before upload

asc metadata validate --dir "./metadata" --output table

For subscription apps, include the extra Terms of Use / EULA heuristic:

asc metadata validate --dir "./metadata" --subscription-app --output table

4. Preview and apply

Run a dry run first:

asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run --output table

Apply after the plan looks correct:

asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"

Use asc metadata apply when the user wants the apply-named command shape for the same canonical files:

asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run
asc metadata apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"

Keyword-only workflow

Use this when only the version-localization keywords field should change:

asc metadata keywords diff --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"
asc metadata keywords apply --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --confirm

For importing keyword research:

asc metadata keywords import --dir "./metadata" --version "1.2.3" --locale "en-US" --input "./keywords.csv"
asc metadata keywords sync --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --input "./keywords.csv"

Quick field updates

For one-off version-localization edits, pass an explicit version selector. Use --version-id for deterministic updates when you already have it, or --version plus --platform when working from a version string.

asc apps info edit --app "APP_ID" --version-id "VERSION_ID" --locale "en-US" --whats-new "Bug fixes and improvements"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --description "Your app description here"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --keywords "keyword1,keyword2,keyword3"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --support-url "https://support.example.com"

For app-info fields, prefer the post-create setup command:

asc app-setup info set --app "APP_ID" --primary-locale "en-US" --privacy-policy-url "https://example.com/privacy"
asc app-setup info set --app "APP_ID" --locale "en-US" --name "Your App Name" --subtitle "Your subtitle"

Lower-level localization files

Use .strings files when the user specifically wants import/export files instead of canonical JSON:

asc localizations list --version "VERSION_ID" --output table
asc localizations download --version "VERSION_ID" --path "./localizations"
asc localizations upload --version "VERSION_ID" --path "./localizations" --dry-run
asc localizations upload --version "VERSION_ID" --path "./localizations"

For app-info localizations:

asc apps info list --app "APP_ID" --output table
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --output table
asc localizations download --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations" --dry-run
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"

Legacy fastlane metadata

Use this only for existing fastlane-format trees:

asc migrate export --app "APP_ID" --version-id "VERSION_ID" --output-dir "./fastlane"
asc migrate validate --fastlane-dir "./fastlane"
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"

Character limits

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

Agent behavior

  • Start with asc metadata pull unless the user specifically asks for .strings or fastlane metadata.
  • Always run asc metadata validate before remote writes.
  • Preview remote changes with --dry-run when the command supports it.
  • For quick edits, always pass --version-id or --version plus --platform; do not rely on ambiguous latest-version behavior.
  • Keep app-info fields and version fields separate.
  • Use --output table for human verification and JSON for automation.

Related skills

Forks & variants (3)

Asc Metadata Sync has 3 known copies in the catalog totaling 3.5k installs. They canonicalize to this original listing.

How it compares

Use asc-metadata-sync for App Store Connect CLI metadata; use fastlane deliver skills only when the team has not adopted the asc canonical workflow.

FAQ

What runs before push?

Always asc metadata validate and a dry-run push or apply preview.

Where do keywords live?

In metadata/version version locale JSON under the keywords field.

When use localizations commands?

When the user specifically wants strings import export instead of canonical JSON.

Is Asc Metadata Sync safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Mobile Developmentdistribution

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.