TestFlight groups and beta review, asked for once on the send
Team
After a build reaches App Store Connect, someone still has to wait for Apple to process it, add it to the right TestFlight groups and submit it for beta review. In Codemagic that is beta_groups and submit_to_testflight in codemagic.yaml; by hand it is a second visit to App Store Connect, often an hour later.
On Team, the Admin who sends a build to TestFlight from AppForShare can ask for both in the same confirm. AppForShare waits for Apple to finish processing, then does exactly what that Admin asked on that send, and nothing more.
Example
Notes 1.8.0 (61), Send to TestFlight
- ProcessingDone by Apple
- GroupsQA (internal), Clients (external): build added
- Beta reviewSubmitted, Apple reviews
- Asked bySara (Admin), on this send
Made for
- Teams moving the TestFlight publishing step out of codemagic.yaml or fastlane
- Agencies that send client builds to TestFlight groups of the client's app
- Anyone tired of coming back to App Store Connect after processing
What it ends
- Waiting for processing before you can add the build to a group
- External testers who never got the build because nobody submitted it for review
- Not knowing who gave which build to which TestFlight group
How it works
Step 1
Send to TestFlight
On the build page of an App Store signed .ipa, open Send to TestFlight. The app's TestFlight groups, internal and external, are listed live from App Store Connect.
Step 2
Pick groups, tick beta review
Pick the groups and tick "submit for beta review when processed". Add What to Test, or the build's release notes are used. Tick the confirmation and send.
Step 3
Apple processes the build
Once Apple reports the build as processed, AppForShare gives it to those groups and submits it for TestFlight beta review.
Step 4
One email with the result
The Admin who sent it gets one email with what was done, or why a step was skipped.
Only what the Admin asked, only on that send
AppForShare submits a build for TestFlight beta review only when an Admin asked for it on that Send to TestFlight, after Apple has processed the build. It never does it on its own. Every call to App Store Connect is in the connection's activity under that Admin, and the workspace activity names them.
It stops without writing anything when Apple cannot process the build, the workspace is no longer on Team, the person is no longer an Admin, or the store app is no longer shared with the workspace.
When review is skipped
If the build is not waiting for beta review, the review step is skipped with Apple's reason: export compliance not answered, already in review, approved, rejected or expired. The groups still get the build. The email says what happened.
Apple still reviews and decides. External testers get the build only after Apple approves it.
From the CLI and CI
appforshare store-upload <build> --to testflight --groups "QA,Clients" --beta-review --yes asks for both on a send, and store-upload <build> --list-groups shows the app's groups. Right after a CI upload, use upload app.ipa --store-upload testflight --testflight-groups "QA,Clients" --beta-review --yes with an Admin's token. The MCP server only reads the result.
Good to know
- AppForShare does not answer the export compliance question for you, and does not approve or speed up beta review.
- It does not send a build for App Review; that stays on the App Store review card.
- The App Store Connect key needs a role that can upload builds and manage testers, such as App Manager.
- The App Store Connect steps were checked against Apple's API reference and a test double, not yet on a real account. AppForShare does not promise processing or review times.
Questions
- Does AppForShare submit builds for beta review on its own?
- No. Only when an Admin ticked it, or passed --beta-review, on that send.
- Do external testers get the build at once?
- No. Apple reviews the build first; external testers get it after Apple approves it.
- Which plan do I need?
- Team. Pro sends builds to TestFlight with What to Test, without the groups and beta review step.
- How is this different from TestFlight tester sync?
- Tester sync keeps the people in a TestFlight group in step with an AppForShare tester group. This gives a new build to groups and asks for review when you send it.
Read next
Try it on your own app
Free account in a minute. Pro starts with a 7 day free trial.
More features
- Builds on GitHub Actions
- Flutter builds on GitHub Actions
- Flutter facts and checks
- Connect Expo (EAS builds)
- Connect Codemagic
- Send store builds to TestFlight and Google Play
- TestFlight feedback in your inbox
- iOS device registration
- Hands free device setup
- Store listing editor
- App Store submission
- Google Play releases
- TestFlight tester sync
- Tester app with notifications
- Tester groups and status
- Join links for testers
- Beta and Live channels
- Build history page
- Tasks and activity feed
- Feedback to Linear and Jira
- Release checklist, approvals and blockers
- Release page per version
- Install link controls
- Several links per build
- Retire a test build
- TestFlight and APK in one link
- Install page in 13 languages
- In-app update check
- .aab uploads
- MCP server for AI tools
- Tester feedback with screenshots
- In-app feedback link
- AI test plan for each build
- Diawi compatible upload API
- Remember my iPhone
- Install help and why it failed
- Email the install link
- Custom channel address
- Verified publisher
- Daily install email
- Zipped .app upload