When releasing to the App Store after using iTunes Connect Testflight beta testing, what's a good way to ensure that external testers get cleanly upgraded to the official App Store version? Specifically:
- Will external testers get a notification on the device that a new app version is available? Will this be a regular iOS notification, a notification from the Testflight app, or both?
- On the home screen, will the beta app's icon show any indication that it's been superseded by a non-beta app?
- If the user has automatic app updates enabled, will the app store app download and install automatically, replacing the beta app? Or will the user have to upgrade manually even if auto-upgrades are enabled?
- If the user opens the Apple Testflight app, will they see any indication that the build they were testing has been superseded by a released build?
- [worst case scenario] If auto-update isn't enabled or doesn't work for beta apps, then what happens when the user tries to open the app after our app store release? Will the app simply crash with no indication to the user what's happened or how to fix it?
If the answers to some of the above questions are "maybe" then what configuration or settings should we use to ensure that app updates work as expected? (where "expected" means that when we release the app to the app store, then all testers should be updated with that new version of the app).
Googling on this topic hasn't been very helpful, perhaps because Apple's TestFlight support is only a few months old so Google is dominated by non-technical news links instead of technical blogs and other places that may offer more details. I've been unable to find any programmer blogs which talk about the "upgrade from external tester to app store version" workflow.
Apple's documentation is clear about what happens from the perspective of the iTunes Connect web application (see excerpts below, coalesced for clarity) but not very clear about the external testers' user experience, which is what I'm trying to figure out. Here's excerpts from Apple's Docs illustrating this:
Finish Testing an App. To stop testing a prerelease version of an app that is actively being tested in TestFlight beta testing, set the Testing switch into the Off (white) position.
Submit to the App Store When you are done using TestFlight beta testing, you can submit the app for final review. Before you submit it, make sure you no longer want to test it or any builds you uploaded earlier than it. When the app becomes Ready for Sale in the App Store, testing automatically stops on earlier builds, and you will be unable to view or test them. See When builds become unavailable for more details. If you want to resume testing of an earlier build, you can upload it as a new build associated with a new prerelease version.
When builds become unavailable Before your app becomes Ready for Sale, the Prerelease pane lists all builds for all prerelease versions you have uploaded. After the app becomes Ready for Sale, some of the builds will be removed from the pane:
The build used in the app is removed from Prerelease, as are all other builds in the same prerelease version. All builds in earlier prerelease versions are also removed from Prerelease. On the Prerelease page, the sections for those prerelease versions will be removed.
BTW, I previously asked this question on Stack Overflow where it was deleted for lack of answers, and it looks like a better home for this may be Ask Different where iTunes Connect questions are apparently encouraged.