appstore-metadata-sync — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited appstore-metadata-sync (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Prefer canonical asc metadata JSON for app-info and version fields. Use .strings or fastlane flows only when specifically needed.
asc metadata pull --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"If multiple app-info records exist:
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"Edit:
metadata/app-info/<locale>.json: name, subtitle, privacyPolicyUrl, privacyChoicesUrl, privacyPolicyTextmetadata/version/<version>/<locale>.json: description, keywords, marketingUrl, promotionalText, supportUrl, whatsNewCopyright is not localized:
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Legal Entity"Validate and apply:
asc metadata validate --dir "./metadata" --output table
asc metadata validate --dir "./metadata" --subscription-app --output table
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata" --dry-run --output table
asc metadata push --app "APP_ID" --version "1.2.3" --platform IOS --dir "./metadata"asc metadata apply is equivalent when the user wants that command shape.
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
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"Always pass --version-id or --version plus --platform for version fields:
asc apps info edit --app "APP_ID" --version-id "VERSION_ID" --locale "en-US" --whats-new "Bug fixes"
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --description "..."
asc apps info edit --app "APP_ID" --version "1.2.3" --platform IOS --locale "en-US" --keywords "keyword1,keyword2"For app-info setup:
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" --subtitle "Your subtitle".strings:
asc localizations download --version "VERSION_ID" --path "./localizations"
asc localizations upload --version "VERSION_ID" --path "./localizations" --dry-run
asc localizations upload --app "APP_ID" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations" --dry-runFastlane legacy:
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-runLimits: name/subtitle 30, keywords 100, description/What's New 4000, promotional text 170. Use table output for human verification and JSON for automation.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.