TestFlight is Apple's testing tool: each build lasts 90 days and then becomes unavailable to whoever installed it, so it cannot be the way your team uses an app every day. The right channel depends on who uses the app. A public app goes to the store; your own team's app goes to the store behind a login the company provides, or ships as a private or unlisted app; an app built for a client company ships as a private app for that organization, on Apple and on Google. Apple's Enterprise Program is not a shortcut: it requires 100 or more employees and is for internal use only.
Can you distribute your company's app through TestFlight?#
No. TestFlight is Apple's testing tool, and each build (the version of the app uploaded for testing) lasts 90 days. After that, according to Apple itself, the build becomes unavailable to testers, and whoever was using the app that way loses it until someone uploads a new version. For daily use, a company app needs a real distribution channel.
The question tends to come up at the same point in a project. The app is ready, the team has already tested it through TestFlight, and someone suggests just leaving it that way and skipping the store. It looks practical because it works on day one.
Apple says plainly what TestFlight is for. In the App Store Review Guidelines, section 2.2 tells developers to put betas in TestFlight and not in the store, and says that any app submitted for beta distribution through TestFlight should be intended for public distribution. In other words, Apple treats TestFlight as the step before the store.
What happens when your team uses the app through TestFlight#
The team ends up depending on a 90-day deadline, a cap on people and an account that was not designed for this. An internal tester has to be a user of the developer account, and an external tester depends on an Apple review. Either way, someone has to upload a new build before the deadline, every quarter.
| Internal tester | External tester | |
|---|---|---|
| Who can be one | an App Store Connect user with a role in the account (Admin, Developer, Marketing and others) | anyone invited by email or through a public link |
| Limit | 100 people | 10,000 people |
| Apple review | not required | the first build goes through review |
| How long each build lasts | 90 days | 90 days |
The figures come from the TestFlight documentation in App Store Connect. The first row is the one that matters most to a company: to add the sales team as internal testers, each sales rep gets a role inside the account that publishes the app. And the accounts a company manages through Apple Business, created in a reserved domain, cannot be used to test builds, also according to Apple.
The deadline is the part no setting can fix. If nobody uploads the new build in time, the whole team loses the app on the same day. In our publishing standard, that is the reason TestFlight is ruled out as a production channel.
What TestFlight is for in a project#
TestFlight lets the people who will use the app see a version before the store does. In our projects it comes in at two moments: when the client validates the app while the store reviews the first version, and when the review is delayed and someone needs to keep testing. The Android equivalent is Google Play internal testing.
At GT, a Brazilian company that manages heavy equipment maintenance, the app was submitted to Apple and Google on August 18. The next day, GT's project leads got access through TestFlight and tested the app while the stores ran their review, and their testing wrapped up the same week. In our weekly plans for projects with an app, the fallback repeats: if the store review is delayed, the client follows along through TestFlight or Google internal testing.
Google Play internal testing does that job well. It takes up to 100 testers, and each version becomes available within minutes. Google itself warns that these tests might not be subject to the standard Play policy and security reviews. That speeds up testing, and it is also the reason not to use internal testing as the team's channel: it is 100 people at most, kept in an email list.
The right channel for each case#
The channel depends on who will use the app. A public app goes to the store. Your own team's app goes to the store behind a login the company provides, or ships as a private or unlisted app. An app built for a client company ships as a private app for that organization, in both stores.
| The case | The Apple path | The Google path | If you use TestFlight |
|---|---|---|---|
| Public app (customers, patients, students) | App Store | Google Play | the app does not show up in the store, and each build lasts 90 days |
| Your own team's app, no device management | App Store behind a company-provided login, or an unlisted app | Google Play behind a company-provided login | every employee becomes an account user or an external tester, and the app goes down if the build expires |
| Your own team's app, with device management | private app in the company's Apple Business | private app in managed Google Play | the same problems, with the private path already at hand |
| App for a client company (B2B) | private app for the client's organization in Apple Business | private app for the client's organization | the client depends on you uploading a build every 90 days |
A public app#
A public app goes to the App Store and Google Play, with each version reviewed. On Google, a personal account created after November 13, 2023 first needs a closed test with at least 12 testers opted in for 14 days straight. That requirement applies to personal accounts. For a company app, the account should belong to the company, because the account is what defines who owns the app, as we explain in who should own the App Store account.
An app for your own team#
In most of our projects, the team's app goes to the public store with closed access. At Beckers, the technicians' Android app is published on Google Play as a corporate app with no public sign-up, and only people who get an email and password from the company can log in. For an app with a login, Apple asks for a demo account with the backend turned on during review (guideline 2.1).
When the company does not want the app in store search, Apple offers unlisted distribution. The app lives in the App Store, installs and updates like any other, and only people with the link can reach it. Apple gives partner sales tools and employee resources as examples, and declines the request if the app is in a beta or prerelease state.
When the company manages its team's devices, the app can be private. On Apple, it shows up only in the company's Apple Business, the former Apple Business Manager, which Apple merged with other services into a free platform in April 2026. The documentation says this path includes proprietary apps for internal use. On Google, the private app is delivered through managed Google Play, by way of the device management system the company already uses.
An app for a client company#
When the app is built for another company's employees, the path is a private app for that organization. On Apple, the app is assigned to the client's organization ID in Apple Business. On Google, the same private app can go to up to 1,000 organizations, and Google explicitly provides for a development agency to publish straight to the client using the organization ID the client sends.
This decision is made before the first release. On Apple, the distribution method cannot change once the app is approved, and going from private to public requires a new app record. On Google, a private app only becomes public as a new app with a different package name.
Why the Enterprise Program is not a shortcut#
The Apple Developer Enterprise Program lets a large company distribute internal-use apps to its own employees outside the store. It requires 100 or more employees, a verification interview and continuous evaluation, and costs US$ 299 a year. It is not for distributing apps to customers, and the certificate can be revoked, which takes down every app signed with it.
The program page says it is only for cases the App Store, custom apps, Ad Hoc and TestFlight do not cover. The program agreement, in its June 8, 2026 version, is direct: to distribute apps to third parties, the company must use the App Store or Custom App Distribution. In the same version, Apple reserves the right to revoke certificates at any time, including when the company breaches the agreement.
What revocation means is in Apple's certificates documentation: users can no longer run apps signed with that certificate. When a vendor uses one Enterprise account to deliver apps to several clients, a revocation caused by one client takes down the apps of all the others.
What about Ad Hoc?#
Ad Hoc installs the app directly on registered devices, outside the store. Each account can register up to 100 iPhones per membership year, one at a time, and the count only resets at the start of the next membership year. It suits a test with a handful of devices, not a team that hires new people every month.
What about sending the APK directly on Android?#
Android still installs an app sent as a file, but Google has started to close that path. Since September 30, 2026, in Brazil, Indonesia, Singapore and Thailand, apps installed from participating stores, including Google Play and the Galaxy Store, must be registered by a verified developer. Google has announced it will extend verification to all apps on certified Android devices starting in 2027.
What to decide before building the app#
Before development, four answers define distribution, and they all fit in a scoping meeting:
- Who uses the app: the public, the company's own team or a client's employees.
- Does the company manage the devices? If it does not, Google's private app is out of reach, and the path is the store behind a login.
- Which account will publish the app, and whether it is a company or a personal account, because of Google's 14-day test.
- Will the app charge for anything inside it? If so, the stores' payment rules apply, as explained in when an app pays a commission to Apple and Google.
If it is not yet clear whether the system really needs an app, the earlier question is answered in mobile app or web system.
Frequently asked questions#
Does an app installed through TestFlight stop working after 90 days?#
The build does, yes. According to Apple, a build can be tested for up to 90 days and then becomes unavailable to testers. Whoever uses the app that way only keeps it if a new build is uploaded before the deadline and each person installs the new version. Once the app is published in the store, there is no such deadline.
Can I use Google Play internal testing to distribute the app to my team?#
It works for a while, but it is not the right channel. Internal testing takes up to 100 testers, added through an email list, and Google warns that these tests might not be subject to the standard Play policy and security reviews. For a team that uses the app every day, the path is publishing in the store behind a login the company provides, or a private app through managed Google Play.
Do I need a mobile device management (MDM) system to have a private app?#
On Google, yes: the private app is delivered through managed Google Play, by way of a device management system, which can be Google itself through the Admin console. On Apple, the private app shows up in the company's Apple Business and is distributed through device management or redemption codes. Since April 2026, Apple Business is free and includes device management.
Does an internal app also go through Apple's review?#
It does. An app published in the store, an unlisted app and a private app for an organization are all reviewed by Apple before reaching anyone. If the app has a login, Apple asks for a demo account with the backend turned on. TestFlight external testing also goes through review on the first build. Within TestFlight, only internal testing, limited to 100 users of the account, skips it.
Can an app that started as private be made public later?#
Not directly. On Apple, once the app is approved, the distribution method cannot change: going from private to public, or the other way around, means creating a new app record and resubmitting. The only exception is changing a public app to unlisted. On Google Play, a private app stays private, and making it public means publishing a new app with a different package name.
Sources#
- Apple, TestFlight overview (App Store Connect Help): https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview
- Apple, TestFlight: https://developer.apple.com/testflight/
- Apple, App Store Review Guidelines, revision of June 8, 2026 (guidelines 2.1 and 2.2): https://developer.apple.com/app-store/review/guidelines/
- Apple, Set distribution methods (App Store Connect Help): https://developer.apple.com/help/app-store-connect/manage-your-apps-availability/set-distribution-methods
- Apple, Custom apps: https://developer.apple.com/custom-apps/
- Apple, Unlisted app distribution: https://developer.apple.com/support/unlisted-app-distribution/
- Apple Newsroom, "Introducing Apple Business", March 24, 2026: https://www.apple.com/newsroom/2026/03/introducing-apple-business-a-new-all-in-one-platform-for-businesses-of-all-sizes/
- Apple Developer Enterprise Program: https://developer.apple.com/programs/enterprise/
- Apple Developer Enterprise Program License Agreement, June 8, 2026 version (section 5.3): https://developer.apple.com/support/downloads/terms/apple-developer-enterprise-program/Apple-Developer-Enterprise-Program-License-Agreement-English.pdf
- Apple, Certificates overview: https://developer.apple.com/support/certificates/
- Apple, Devices overview: https://developer.apple.com/help/account/devices/devices-overview/
- Google Play, set up an open, closed or internal test: https://support.google.com/googleplay/android-developer/answer/9845334
- Google Play, testing requirements for new personal developer accounts: https://support.google.com/googleplay/android-developer/answer/14151465
- Google Play, publish private apps: https://support.google.com/googleplay/android-developer/answer/6145139
- Android Developers, developer verification: https://developer.android.com/developer-verification
- Android Developers Blog, "Android developer verification", June 2026: https://android-developers.googleblog.com/2026/06/android-developer-verification.html
Next step#
If your company is going to have an app for its team or for clients, the distribution channel belongs in the scope from the start, together with the account and the store review. It is the kind of product we build and publish in SaaS products, like the Beckers field app, which is on Google Play with access only for the people the company grants it to.

