Distribute your beta app using TestFlight Beta Testing. You upload your builds to iTunes Connect and then use iTunes Connect to manage your builds, invite testers, and see tester engagement.
Important: Rigorously test your app on a variety of devices and operating system versions. Because different kinds of devices and releases have different capabilities, it’s not sufficient to test your app on a device provisioned for development or on a simulator. A simulator doesn’t run all threads that run on devices, and launching apps on devices through Xcode disables some of the watchdog timers. At a minimum, test the app on all devices that you support and have available. In addition, keep prior releases installed on devices for compatibility testing. If you don’t support certain devices or releases, edit the deployment info settings accordingly.
First prepare your app for distribution and then create an archive of your app.
Validate the archive of your app and if it passes iTunes Connect tests, upload it to iTunes Connect.
Read Viewing Builds and Viewing and Changing Your App's Metadata in iTunes Connect Developer Guide.
Optionally, distribute your app to 25 internal testers (your iTunes Connect users) or 2000 external testers per app (users with email addresses). If you invite external testers, your app is submitted to Beta App Review. For details, read TestFlight Beta Testing (iOS, tvOS, watchOS) in iTunes Connect Developer Guide.
Tip: To test the variants that the App Store builds before you release your app, invite internal testers (your team’s iTunes Connect users) only and download the variants using TestFlight.
Testers install the free TestFlight app on their devices. Then testers use TestFlight to redeem invitations, install your app, send feedback, and get updates. Testers download and install thinned variants of your app.
Apple provides a crash report service that allows you to view crash reports directly in Xcode for apps distributed using TestFlight.