Internal Testing

When to Use Internal Testing

  • Daily build validation during development (regression, smoke tests).
  • Internal review of new features (product, design, QA together).
  • Final self-test before submission (walk the full user path).
  • Real-device verification of push, camera, location, performance.

Members & Permissions

Internal testers must be team members, i.e. added in App Store Connect’s “Users and Access” with one of these roles:

  • Account Holder
  • Admin
  • App Manager
  • Developer

Creating an Internal Test Group

  1. Open App Store Connect → select your app → go to the TestFlight tab.
  2. In Internal Testing, click ”+” to create a group (e.g. QA Group, Daily Validation).
  3. Open the group, go to Builds, click + and select the build to test (must be processed).
  4. Go to Internal Testers, click + and add team members.

Uploading a Build

Builds must be signed with a distribution certificate, then uploaded via:

  • Xcode: Product → Archive, then in Organizer Distribute App → App Store Connect.
  • Transporter: the official upload tool; can upload .ipa.
  • CI / fastlane: fastlane pilot upload or altool (deprecated — use Transporter / fastlane).

After uploading, the build shows Processing; attach it to a test group only after it finishes.

fastlane pilot upload

Upload a build to TestFlight with fastlane

fastlane pilot upload
—ipa path/to/YourApp.ipa
—skip_waiting_for_build_processing true

How Testers Install

  1. Testers install the TestFlight app from the App Store (free).
  2. Sign in inside TestFlight to see the invited app and available builds.
  3. Tap Install to download; they’ll be notified when updates are available.

Notes

  • Up to 100 internal testers; test groups share the limit.
  • Internal builds are also subject to the 90-day validity; keep uploading new builds.
  • An internal build can be submitted for review: if it passes internal validation, use it directly for App Store review.
  • Each group can attach multiple builds; testers can choose any of them.

Self-Check List

  • Build signed with a distribution certificate and uploaded
  • Build status is Processing-complete (not still processing)
  • Internal test group created and target build attached
  • Target members added in Users and Access with correct roles
  • Members added to the test group
  • Members installed TestFlight and can see the build
  • Test focus and feedback method communicated

FAQ

  • Members can’t see the build? Check role permissions, group membership, build processing status, and 90-day validity.
  • Can internal testing cover payments/IAP? Yes, testers should use sandbox accounts to test IAP/subscription flows.
  • Can internal and production versions coexist? Yes — the TestFlight version and App Store version can be installed simultaneously (same Bundle ID, different sources).