We are going to submit a prerelease version of an app to external users, but I wonder: what will their experience be?
The user had a production App Store version of the app on the device, and now installs a new beta via TestFlight. Will this be in-place update, with the data preserved, or a completely new install with data wiped, or will TestFlight's version be installed next to production - so that the user has the app twice?
Testing is over, and the production-ready version is submitted to the App Store. Will the tester be able to update to the new App Store version seamlessly (in-place), with the beta version's data preserved? Or is it a complete wipe? Or will beta stay on his device and he has to download a new full version from scratch?
By the way, I have submitted another question regarding version numbering beta vs. production.
According to https://developer.apple.com/testflight/
Once you accept your invitation, you’ll be able to download a beta version of the app you’ve been invited to test. If you already have the live app installed on your device, the beta version of the app will replace the live version. When you’ve downloaded the beta app, you’ll see an orange dot next to its name that identifies it as a beta. TestFlight will notify you each time a new build is available and provide instructions on where to focus. You can easily offer feedback by tapping the Provide Feedback button in the App Details view in TestFlight. An email automatically opens with pertinent app and device details, and you can add additional details and screenshots.
It's said that the beta version of the app will replace the live version. The reason is the beta app has exactly the same bundle identifier with the one on the App Store.
After installing the beta app, the user will still see the updates from the App Store as the live version has been installed (without losing any data) because the beta app is deployed using exactly the same certificate.