Skip to content

TestFlight Distribution

Share apps with a small group via TestFlight internal testing or Ad Hoc distribution without going through the App Store.

When to use

Use when distributing an app to 2–3 people, deploying to your own physical devices for long-term use, or setting up a distribution pipeline for a personal project.

The pattern

Prerequisites

Apple Developer Program membership ($99/year). Required for TestFlight, Ad Hoc, and year-long provisioning on physical devices.

Personal use only

Build and run from Xcode directly onto your device. With the paid developer program, the app stays valid for a year before needing to be re-deployed. The free tier expires after 7 days.

"Internal" means testers who are members of your App Store Connect team (added under Users and Access with a role like Developer, Marketing, or Admin). Internal builds don't require Apple's Beta App Review, so they're available immediately after upload.

Setup:

  1. Sign in to App Store Connect
  2. Create a new app record (just metadata — no App Store submission needed)
  3. Add testers by Apple ID email — up to 100 internal testers, no review required

Distribution:

  1. In Xcode: Product → Archive
  2. In the Organizer window: Distribute App → TestFlight Internal Testing
  3. Upload completes in a few minutes
  4. Testers receive an email invitation
  5. They install the TestFlight app (available on iPhone, iPad, Mac, and Apple TV)
  6. Tap the link → tap Install → app appears on their device

Updates: Push a new archive and upload. Testers get notified automatically or can enable auto-update in TestFlight.

Expiration: Builds expire after 90 days. Push a new build when needed.

Ad Hoc distribution (alternative, iOS/iPadOS only)

  1. Collect each tester's device UDID (Settings → General → About, or via Finder when connected to a Mac)
  2. Register UDIDs in the Apple Developer portal (up to 100 devices per year)
  3. Create an Ad Hoc provisioning profile
  4. Archive and export an IPA
  5. Share via AirDrop, email, or download link

Builds are valid for a year. More friction upfront (UDID collection) but longer-lived builds.

Which to choose

For 2–3 people, TestFlight internal testing is the better experience: no UDID collection, clean install flow, automatic updates, no App Store review, and works across iPhone, iPad, Mac, and Apple TV. The 90-day build expiration is the only downside, but if you're actively developing, you'll push new builds more often than that.

Trade-offs

  • TestFlight requires an App Store Connect app record, but no actual App Store submission or review for internal testers
  • Ad Hoc is iOS/iPadOS only — Mac and Apple TV apps use TestFlight or direct distribution
  • Both paths require the $99/year Apple Developer Program
  • TestFlight testers need to install the TestFlight app (one-time)
  • watchOS apps are distributed as companions to an iOS app via TestFlight