In this demo, you’ll see an entry for an app in App Store Connect that has never been released on the App Store. In Xcode, you can make a new build of this app. Be sure to increment the build number and select a general build destination. Now, archive the app.
The new build appears in the Organizer. You can click Distribute App and choose TestFlight Internal Only. The team hasn’t filled in all the metadata needed for external or App Store builds yet. Xcode rebuilds and generates all of the proper certificates. It then uploads the build to TestFlight.
On the TestFlight dashboard, the new build hasn’t appeared yet. It’ll take a few minutes. While you wait, you’ll see some entries for a different app.
This is an app already in the App Store. Its TestFlight builds are all expired, and since the version in TestFlight is the release version, you can’t upload new ones until a new version of the app is created.
To create a new version, navigate to the Distribution tab and click this plus button next to the iOS App. Enter a new version and see how the dashboard clears some fields to be repopulated for the new version. At this point, new builds of this new version can be uploaded to TestFlight.
This particular app uses Game Center achievements. In the Growth & Marketing tab, the team can add leaderboards and new achievements. Here’s the edit screen for one of the achievements. The team can upload a badge and set some parameters for the achievement. In the app’s code, the Achievement ID is sent to the Game Center so the badge and name can be shown when the achievement is awarded.
Growth & Marketing is also where Promo Codes are generated. For a paid app, the team can generate 100 codes per version. A promo code lets a user download the app for free. For apps with in-app purchases, the team can also generate promo codes for these purchases.
Now, switch back to TestFlight. The new build is ready to distribute to the internal testers. Click the build number to provide a place to put notes to the testers. These notes will appear when the testers install or upgrade the app on their devices.
If a build has a serious defect or the team needs to disable the app, the Expire Build button will cause any installed copies of the app to fail to launch and remove the app from the TestFlight download list on testers’ devices.
In the Distribution tab, scroll down to the build and click Add Build. The builds in TestFlight appear here. They can be promoted to become the actual release build. Notice that some builds are gray. These were uploaded to TestFlight for internal testing only.
Once all the fields on the Distribution form are filled and a build has been promoted, the team can submit the app for release in the App Store.