Learn about various methods to share pre-release versions of your app for internal distribution and TestFlight.
During the development process you'll want to share your progress with both technical and non-technical stakeholders of the project to gather feedback and test it, and there are several official approaches you can take for doing this.
Android and iOS both offer ways to install a build of your application directly on devices. This gives you full control of putting specific builds on devices, allowing you to iterate quickly and have multiple builds of your application available for review at the same time.
To share your application to Android devices, you must build an APK (Android application package file) of your project. APKs can be installed directly to an Android device over USB, by downloading the file over the web or through an email or chat app, once the user accepts the security warning for installing an app that has not gone through Play Store review. AAB (Android app bundle) binaries of your application must be distributed through the Play Store.
Apple offers ad hoc provisioning profiles to distribute your app to test devices once they have been registered to your Apple Developer account. This method requires a paid Apple Developer account and that account will only be able to use this method to distribute to at most 100 iPhones per year.
You will need to know the UDID (Unique Device Identifier) of each device that will install your application, which may be challenging if you are trying to share with someone who is not a developer. Adding a new device will require a rebuild of your application.
Setting up Ad Hoc certificates correctly can be intimidating if you haven't done it before, and tedious even if you have. If you're using EAS Build, which is optimized for Expo and React Native projects, we'll handle the time-consuming parts of setting up Ad Hoc credentials for you.
If your app is only intended to be used internally and will not be distributed through the App Store, you should use Enterprise distribution. Unlike Ad Hoc Distribution, there is no limit to the number of devices that can install your application, and you will not need to manage the UDIDs of each device. Enterprise Distribution requires membership in the more expensive Apple Developer Enterprise Program, which requires your organization to be a legal entity and go through Apple's verification process.
TestFlight is another option to distribute your application to iOS devices. TestFlight also requires a paid Apple Developer account, but allows you to share your application with up to 10,000 users that can be invited with their email or a public link. This method requires you to upload your application to App Store Connect and wait for the automated review before you can share a build. If you intend to ship new builds frequently, investing the time to set up Ad Hoc distribution will be worthwhile.