Skip to content
axintdocs

App Store readiness

A successful Swift compile is necessary, but App Store submission depends on contracts outside the source file. Use one release receipt to connect the archive to its code, metadata, tests, declarations, and signing inputs.

Build and test

Exact commit, Xcode build, destination, archive command, test result bundles, warnings, crashes, and runtime evidence.

Privacy and permissions

Privacy manifest, required-reason APIs, usage descriptions, entitlements, data handling, and the owner’s App Privacy answers.

Accessibility

Common-task matrices and evidence supporting each accessibility declaration by device family.

Commerce and age rating

Version-scoped purchase/subscription metadata, review submissions, and current social-media age-rating fields.

Terminal window
axint prove --dir /path/to/MyApp

The receipt can include Swift findings, Xcode build/test evidence, artifact hashes, active advisories, and the next repair path. Use --fix only when the team has opted into supported deterministic rewrites.

Commerce metadata is moving to explicit versions:

  • InAppPurchaseVersion
  • SubscriptionVersion
  • SubscriptionGroupVersion

Localizations, images, and review relationships should point to the matching version. Legacy v1 resources are deprecated. Age-rating automation should also review socialMedia and socialMediaAgeRestricted.

import { analyzeAppStoreConnect441Request } from "@axint/compiler";
const findings = analyzeAppStoreConnect441Request({
path,
body,
});

Use three outcomes:

  • Pass: required build, test, metadata, and policy evidence is present.
  • Needs review: the technical proof passed but an advisory, declaration, or owner decision remains.
  • Fail: confirmed evidence shows the archive or submission contract is not ready.