Note: This guide only outlines steps for preparing the app for upload to TestFlight, assuming that steps to setup the provisioning files and AppleDeveloper account has been completed already.
-
With workspace file of the app opened, go to xcodeproj of the app (same name as the app folder) and select on the target for which the upload to TestFlight will be done for. The targets are iOS, tvOS and macOS.
-
Select
Signing & Capabilitiesand deselectAutomatically manage signing. Import the appropriate provisioning file for the app and select the team if necessary.Edit the
Bundle Identifierto align with the name originally used to setup the provisioning files. XCode will indicate the correct bundle identifier if you don't remember the exact one.
- Open
Assetsand thenAppIcon. An App Store iOS icon of 1024px is required. Additional app icons will also be needed depending on whether the app is built for iPhone, iPad or Mac.- Images for the icons can be dragged directly into
Assetsto add them. - Make sure the icons meet the size requirements.
- The icons also have to be opaque with no transparency.
- It is possible that the icons may appear to be not transparent yet not pass the validation phase, refer to this StackOverflow post for how to use preview to remove transparent background.
- Images for the icons can be dragged directly into
- Add a custom launch screen to the app if desired. Use the
LaunchScreen Storyboardunder the specific target to modify the design of the launch screen.
- Before creating an archive, make sure that a generic device (ex: Any iOS Device) is selected for build so that the archive will be created for a general device and not include files specific to a real device or simulator.
- Then go to
Product > Archiveto produce an archive for the app. This process can potentially take 45 to 60 mins depending on the pod used in the project and project dependencies.
- When the archive is completed, a new window will show up with the archive. This view can also be brought up using
Window > Organizer. - Make sure the most recent archive is selected and use
Validate Appto first check whether the archive can be uploaded to TestFlight and resolve any issues as necessary. After resolving issues, a new archive will need to be generated. - After passing the validation, select
Distribute AppandApp Store Connectfor distribution method. Add the provisioning file and fill options related to the app when they emerge. A success message will be displayed if the distribution is completed.
!(Distributing in Progress)[https://github.com/LinJing-Liu/testflight-guide/blob/main/pictures/uploading_in_progress.png]
The following resources outline steps for uploading to TestFlight in greater detail.



