๐Ÿš€ ShipToStore

iOS publishing guide ยท 3 steps ยท ~1h 50m

๐Ÿงช TestFlight

Optional but recommended: catch crashes with real testers before burning a real review cycle.

Set up internal testing (instant, up to 100 testers)

20 min

Internal testing is instant โ€” no beta review.

  1. App Store Connect โ†’ your app โ†’ TestFlight โ†’ under Internal Testing create a group (e.g. 'Team').
  2. Add testers: they must be members of your App Store Connect team (Users and Access) โ€” up to 100 internal testers, each able to test on multiple devices.
  3. Enable automatic distribution so every new processed build reaches the group without clicks.
  4. Testers install the TestFlight app from the App Store, accept the email invite, and install your build.
  5. Builds expire after 90 days โ€” fine for a release cycle.

Even as a solo dev, install via TestFlight yourself: it's the closest thing to the production environment (release build, real push, real-ish IAP).

Optional: external testing with a public link (up to 10,000 testers)

30 min

External testing reaches people outside your team:

  1. Under External Testing, create a group and either invite by email or enable a public link (cap configurable, up to 10,000 testers).
  2. The first build for external testing needs a lightweight beta review (~1 day, much gentler than full App Review โ€” but real guideline violations still fail it). Subsequent builds of the same version usually go out without re-review.
  3. Add 'What to Test' notes per build so feedback is focused.
  4. Public links are great for waitlists, Discord/Reddit communities, and landing pages.

Collect crashes and feedback before submitting

1h

Use the beta period to de-risk review:

  • Crashes: TestFlight auto-collects crash reports โ€” check App Store Connect โ†’ TestFlight โ†’ Crashes and Xcode Window โ†’ Organizer โ†’ Crashes. A crash a tester hits is a crash the reviewer will hit (Guideline 2.1).
  • Screenshot feedback: testers can screenshot inside TestFlight and annotate; it arrives attached to the build.
  • Watch sessions/installs per build to confirm testers actually ran the latest build.
  • Triage rule of thumb: fix every crash and every 'I was confused byโ€ฆ' that appears twice. Ship a new build (auto-increment makes this cheap) and re-test.

When a build has soaked for a few days without new crashes, that's your review candidate.

โ† Build, upload & processingSubmit for review โ†’

Track this interactively

Check off steps, skip what doesn't apply, and pick up where you left off.

Open the checklist โ€” free