TestFlight and App Store Packaging
What This Route Does
MeDo’s “Public Release / Invite Testing” route creates a signed distribution build and uploads it to App Store Connect. The processed build can then be used for:
- Internal TestFlight — Fast testing by up to 100 eligible App Store Connect users.
- External TestFlight — Beta testing by up to 10,000 people invited by email or public link. Beta App Review may be required.
- App Store submission — Formal App Review and production release after metadata and compliance information are complete.
TestFlight testers do not provide UDIDs. Every build remains testable for 90 days from upload.
Before Packaging
- Maintain active Apple Developer Program membership.
- Create an explicit Bundle ID and enable only the app services the build uses.
- Create the App Store Connect app record with the same Bundle ID.
- Accept current Apple agreements.
- Use a version and build number that have not already been uploaded.
- Confirm the build meets Apple’s current SDK requirement. Since April 28, 2026, uploads require Xcode 26 or later and the iOS 26 / iPadOS 26 SDK or later.
Select the Distribution Method in MeDo
Choose Public Release / Invite Testing in the MeDo packaging panel. MeDo checks the available Apple authorization and signing configuration before starting.

Configure the App Store Connect API Key
If the workspace is not yet connected, MeDo requests:
- Issuer ID
- Key ID
.p8private key file
Create the team API key in App Store Connect → Users and Access → Integrations → App Store Connect API. Apple permits the private key file to be downloaded only once.
Security Rules
- Create the key under the correct Apple developer team.
- Grant only the role and access MeDo needs for the documented workflow.
- Store the
.p8file in an approved secret manager; do not commit or email it. - Restrict MeDo workspace access because connected apps may share the Apple configuration.
- Revoke unused or exposed keys in App Store Connect and replace them in MeDo.
- Review certificate and provisioning status after membership, team, entitlement, or Bundle ID changes; do not assume every signing asset can always renew automatically.

Create the App Store Connect Record
Before the first successful upload, add a new app in App Store Connect.

Enter:
- Platform — iOS
- Name — App Store display name; it may be localized later
- Primary language — Fallback language for product-page metadata
- Bundle ID — Select the exact registered App ID used by MeDo
- SKU — Permanent internal identifier not shown to customers
- User access — Limit record access when appropriate
The App Store name may differ from the home-screen name, but it must accurately describe the same app. The Bundle ID must match exactly and cannot be changed after a build is uploaded.
Start Packaging and Upload
Click Start Packaging. The queue and processing time vary; the previously observed 3–8 minute range is an estimate, not a guarantee.
You may leave the page while MeDo works. Check the result under Export Installation Package on the app detail page.

If the upload initially fails because the app record did not exist, create the record, return to MeDo, and retry with the same matching Bundle ID.
Resolve Build Processing
After upload, wait for App Store Connect to process the build. Then open the build and complete any missing information:
- Export-compliance encryption questions
- Content-rights or regional compliance prompts when shown
- Test details such as What to Test, feedback email, and localized test information
- Sign-in credentials or a full demo mode when authentication is required
Processing or compliance errors must be resolved before a build can be assigned to testers or review.
Internal Testing
Internal testers are App Store Connect users with access to the app. They are appropriate for employees and trusted team members who may see pre-release information.
- In App Store Connect, open the app’s TestFlight tab.
- Under Internal Testing, create a group.
- Add eligible App Store Connect users to the group.
- Add the processed build and enter What to Test.
- Enable automatic distribution only when every future internal build should reach that group.
You can add up to 100 internal testers. They do not need a separate “Developer Program invitation” after they are already eligible App Store Connect users.

External Testing
External testers do not need to join your Apple Developer team or become App Store Connect users.
- Under External Testing, create a group.
- Add the build and complete the requested beta information.
- Submit the build for TestFlight Beta App Review when App Store Connect requires it.
- After approval, invite testers by email, import a CSV, or create a public link.
- For public links, set an optional tester limit and device or OS criteria. Treat the link as shareable by anyone who receives it.
External testing supports up to 10,000 testers. Public-link testers appear anonymously; email-invited testers can appear with their name and email in tester metrics.
Tester Installation
Email Invitation
- The tester opens the TestFlight invitation email.
- They install Apple’s TestFlight app from the App Store if needed.
- They open the invitation link or redeem the provided code in TestFlight.
- They tap Install for the available build.

Public Link
- The tester opens the public link on a supported device.
- TestFlight checks the group’s capacity and any device or OS criteria.
- The tester accepts and installs the build.
No developer-team invitation or UDID exchange is involved.
Run a Useful Beta
- Explain the feature scope, known issues, test accounts, and expected feedback in What to Test.
- Keep backend services and test accounts available for the entire beta.
- Monitor sessions, crashes, and tester feedback in App Store Connect.
- Remove builds that should no longer be tested and disable public links when enrollment should stop.
- Upload a new build before the 90-day expiration and retest the production candidate.
- Do not use TestFlight as permanent production distribution.
Move from TestFlight to App Review
Testing approval is not App Store approval. Before submitting the build for production, complete the product page, App Privacy, age rating, encryption, DSA status, regional availability, review contact, demo credentials, and any in-app purchase or subscription items.
Continue with Publish on the App Store.