Internal Testing
The biggest value of internal testing is “speed”: after a build finishes processing, you can distribute it immediately, with no review wait — ideal for daily in-team validation.
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
If a colleague can’t find the “internal testing” entry after logging in, check that they were added as a team member with one of the roles above.
Creating an Internal Test Group
- Open App Store Connect → select your app → go to the TestFlight tab.
- In Internal Testing, click ”+” to create a group (e.g.
QA Group,Daily Validation). - Open the group, go to Builds, click + and select the build to test (must be processed).
- 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 OrganizerDistribute App → App Store Connect. - Transporter: the official upload tool; can upload
.ipa. - CI / fastlane:
fastlane pilot uploadoraltool(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
- Testers install the TestFlight app from the App Store (free).
- Sign in inside TestFlight to see the invited app and available builds.
- Tap Install to download; they’ll be notified when updates are available.
Internal testers don’t need a separate “accept invite” step — as long as they are a team member and in the group, the build appears in their TestFlight list.
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).
