Version & Metadata
Description, keywords & screenshots.
Source: App Store Connect. AuditStore picks the newest editable version (one whose state is PREPARE_FOR_SUBMISSION, DEVELOPER_REJECTED, REJECTED, METADATA_REJECTED, WAITING_FOR_REVIEW, IN_REVIEW, or PENDING_DEVELOPER_RELEASE) and audits its localizations, then falls back to the newest version if none is editable.
Version state
ID: version-state · Can be: Blocking, Info, Error
Follows appStoreVersions and picks the version under review.
- Info — reports the chosen version string and its state. The ASC version’s
platformattribute also refines screenshot expectations (a Mac app reportsMAC_OS). - Blocking — no version exists; create one first.
Description
ID: description · Can be: Blocking, Recommended, Passed
Checks description across all appStoreVersionLocalizations (cap: 4000 chars).
- Passed — present for every localization.
- Blocking — empty for one or more locales (which it names). Required per localization.
- Recommended — within 10% of the 4000-character cap (only when near-limit warnings are enabled).
Keywords
ID: keywords · Can be: Recommended, Passed
Checks the keywords field (cap: 100 chars).
- Passed — set and within limit; reports the longest field’s length.
- Recommended — no keywords set (forfeits a free search-ranking field), or near the 100-character limit where trailing keywords may be truncated.
Promotional text
ID: promo-text · Can be: Info, Recommended, Passed
Checks promotionalText (cap: 170 chars).
- Info — none set (it’s optional).
- Passed — present.
- Recommended — near the 170-character limit (near-limit warnings enabled).
Support URL
ID: support-url · Can be: Recommended, Passed
Reads supportUrl and issues a HEAD request to check reachability.
- Passed — returned a 2xx/3xx status.
- Recommended — no support URL set, or it didn’t respond / returned an error. Reviewers open your support URL; an unreachable page can cause a rejection.
What’s New
ID: whats-new · Can be: Blocking, Info, Passed
Checks whatsNew (release notes).
- Passed — present for all localizations.
- Info — empty, but this is a first version (
1.0/1.0.0/ blank), where release notes aren’t required. - Blocking — empty on an update after the first version (names the missing locales). Required for every update.
Competing-platform references
ID: metadata-competitor · Can be: Recommended, Passed
Content-lints the listing text (description, keywords, promotional text, “What’s New”) across every localization for mentions of competing platforms or stores — Android, Google Play, Play Store, Windows Phone, Galaxy Store (matched case-insensitively). Read-only; AuditStore never edits your metadata.
- Passed — no competing-platform terms found.
- Recommended — one or more terms found (which it names). Guideline 2.3.10: metadata shouldn’t reference specific third-party or competing platforms — such mentions are commonly rejected.
Generative-AI service names (China)
ID: metadata-china-ai · Can be: Info
Scans the same listing text for third-party generative-AI service names — ChatGPT, OpenAI, Gemini, Midjourney, Stable Diffusion, DALL-E. Emitted only when a term is found.
- Info — a term appears. If the app ships in the China mainland storefront, referencing these services can require a filing/license or lead to removal. No impact if you don’t distribute in China — AuditStore can’t confirm availability, so this is informational, never a warning.
Screenshots
ID: screenshots-<locale>-<displayType> · Can be: Blocking, Recommended, Passed, Error
For each localization, follows appScreenshotSets → appScreenshots and counts uploads per required display type. Required sets depend on platform:
| Platform | Required display types |
|---|---|
| macOS | APP_DESKTOP (Mac) — blocking |
| iOS | iPhone 6.9″ (APP_IPHONE_67) — always blocking; iPad Pro 13″ (APP_IPAD_PRO_3GEN_129) — blocking only if the build targets iPad |
- Passed — the required set has at least one screenshot for the locale.
- Blocking / Recommended — the required set is missing or empty. Severity is blocking for required-on-this-build device families, recommended otherwise.
Screenshot references (no image bytes) are collected here so they can be embedded in exported reports.