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 ve
I think the things changed a while ago.
Even if you have a beta (which is signed with production certificate - remember, no AdHoc needed), the TestFlight version will function as an update for the existing app. I tested those things and can confirm no NSUser defined entities were overwritten or deleted by the TestFlight build.
For the second part: the user can preserve saved data if the application is not a major build (I mean, you cannot expect a database stored in some format to work with another new model of your app version). To be sure your app does not clear or attempt to modify previous content, put a version check on the new one. If there are data found, update to the new schema. I think this is the way to go. Anyway, you cannot have duplicated versions of the app because they are signed by the same profile.
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.