We have a similar requirement for our apps, where we need to send different beta versions of our apps to different user groups via TestFlight.
Creating a TestFlight team for each app will work, but here's a less messy way to do it:
- Create a TestFlight Team for each development team you're in, not for each app. E.g. one for the apps you make in your day job, one for your the apps you make as personal side projects.
- In each team, create a Distribution List for each individual app: Sign in to TestFlight, click on the People tab, then click on + Add Distribution List (button in the top right)
- Name the team according to the app
- Select the testers who should be able to see the app
- After you then upload a build, under Teammates In The Provisioning Profile, you'll see a list of the Distribution Lists you created. Click on the appropriate one for the build you just uploaded, and TestFlight will only tick those users.
This works in tandem with apps provisioned using the iOS Team Provisioning Profile (the one managed by Xcode, which ensures sure that all the devices on the Apple Developer Portal can install your apps).
It also looks like TestFlight will allow you to ship the builds from different development branches of your app, but it'll still be helpful to manage different apps with Distribution Lists rather than Teams.