Do Closed Testers Have to Pay for a Paid App?
Testers must buy a paid app in a closed test, and the price applies to every track at once. What license testing removes from the bill, and what it leaves.
Internal app sharing moves a build in minutes and counts for nothing. Its 100-download and 60-day limits, plus the re-signing trap that breaks sign-in.
Internal app sharing is the upload page at play.google.com/console/internal-app-sharing. You add an app bundle or APK, Play Console re-signs it with a key Google generates for your app, and it gives you a link. Anyone with that link opens it in the Play Store and installs the build, usually within minutes, because the upload never becomes a release and never enters review.
That speed is why developers reach for it when a tester reports a crash at 11pm and they want a fix in someone’s hands before the next build cycle. It is also why the feature gets misread as a shortcut through Google Play’s closed-testing requirement. It is not one, and the misunderstanding can cost a fortnight.
Everything below comes from Play Console Help and the Android developer documentation, read on 9 November 2026. Where I am drawing a consequence rather than quoting Google, I say so. Where Google is explicit, I quote it, because on this topic the exact wording is the whole argument.
No. Internal app sharing creates no testing track, no opt-in and no install record against a track. The requirement for new personal accounts is 12 testers opted in to a closed test continuously for 14 days, and only closed-track opt-ins satisfy it. A person who installs from a sharing link never becomes an opted-in tester, and the link never appears in your tester count.
The requirement is written against a track type, not against “people who installed your app”. Play Console Help says it plainly: “Developers with personal accounts created after November 13, 2023, must run a closed test for their app with a minimum of 12 testers who have been opted in continuously for at least 14 days.” The other two tracks are named in the same article, and internal testing is listed as optional. Internal app sharing is not listed at all, because it is not a track.
Google also closes the loophole from the other direction. The sharing documentation says: “Uploaded artifacts for internal app sharing aren’t shown in your app bundle explorer, nor can they be included in releases on testing or production tracks.” An artifact that cannot be included in a release on any track cannot generate the track state that the requirement counts.
So a developer who sends a sharing link to 20 friends and watches them all install has 20 installs and zero testers. The Dashboard does not move, the Apply for production button stays disabled, and the 14 days have not started.
Four different things can happen to the same app bundle, and only one of them moves the clock. The order below is the one that matters when you are deciding where to send tonight’s build.
The practical reading: routes 2, 3 and 4 are all legitimate, and none of them is a substitute for route 1. They are ways to stop wasting route 1’s fourteen days on bugs you could have found in an hour.
The feature exists because track releases are rigid. A track release needs a new version code, a review cycle and a bundle that survives Play’s validation. Internal app sharing drops all three requirements, which is exactly why it is good for the ugly middle of development.
versionCode 42 in an afternoon and compare them.That last one is the least-known and the most useful for anyone running a small agency. It also removes the usual excuse for sharing a Play Console login, which is a much worse habit than it sounds.
Shared links are disposable by design, and three documented limits break them in ways that look like bugs.
One more limit is not a limit but a precondition: uploading requires the “Release apps to testing tracks” permission, or membership of an authorized uploader list. An account with read-only access cannot upload, and the page does not always make that obvious.
Here is the part that surprises people, and it comes straight from Google’s troubleshooting notes: a sharing link only works for someone who can already see your app on Google Play. “If an app isn’t available for a user on Google Play, then they won’t be able to download it using internal app testing. For testers to be able to download your internal app, they need to have access to your app’s store listing on Google Play.”
Google gives two causes: the app is not distributed in the user’s country, or “it’s only published to a testing track that a user doesn’t have access to.” In practice that means internal app sharing cannot be used to hand a build to a stranger. If your app exists only on a closed track and the person on the other end is not one of your closed testers, the link fails — which is the same wall you were trying to get around.
The second failure is local to the device. Internal app sharing is off by default in the Play Store app, and testers have to enable it before any link works:
Send those three steps with the link. Sending the link alone produces a support message that reads like a broken build, and I have watched that cost a day on a project where nothing was wrong with the app.
Google re-signs every shared build. “Uploaded artifacts for internal app sharing can be signed with any key… They’re automatically re-signed with an Internal App Sharing key, which is automatically created for your app by Google.” The first upload for an app generates that key, and every upload after it uses the same one.
Every install from a sharing link therefore carries a certificate fingerprint that no other install of your app has. Anything that validates your signature stops matching, and it fails at the first screen rather than in a log you will read:
assetlinks.json lists the release fingerprint, so verified deep links fail verification on the shared build and open in a browser instead of your app.The fix is documented and takes two minutes: Test and release > Internal testing > Internal app sharing > Uploaders and testers, scroll to Internal test certificate, and download the certificate. Copy its SHA-1 into every console that validates your signature, then rebuild nothing — the certificate stays the same for future uploads.
Based on our analysis of 1,500+ closed-testing campaigns, the failure we see most often in shared-build handoffs is not a dead link. It is a sign-in screen that accepts nobody, because the OAuth client still lists only the release fingerprint, and the tester concludes the app is broken before they reach the home screen.
One caution, and this is our recommendation rather than a Google rule: keep that test fingerprint in a separate OAuth client or a temporary entry, and remove it when the campaign ends. A debug certificate left permanently in a production client widens who can present themselves as your package name.
The two features are complements, not alternatives. The closed test is the counted path; app sharing is the fast lane for the people already on it.
0.9.4-fix-login) so a tester can tell you which build crashed.If your testers are stuck at zero opted in, the cause is almost always on the track side, not the link: the 0 testers currently opted in fixes cover the usual suspects, and email list versus Google Group matters if you are adding people in bulk.
Sharing is a build delivery mechanism, and treating it as a test environment produces false confidence. Skip it, or go back to the track, in these cases:
A useful split: use app sharing to answer “does this build run?”, and the closed track to answer “will Google count this?”. Confusing the two is how people end up with a fortnight of testing and a disabled Apply button.
Does internal app sharing count toward the 12 testers? No. It creates no track and no opt-in, so nothing installed from a link can be counted as a closed tester.
Can I use it to hand a build to someone who is not a tester? Only if they can already see your app on Google Play, in their country, through production or a track they are on. Otherwise the download fails.
Do I need the app published before I can upload? You can upload a bundle before the app is live, but testers can only download it if the store listing is available to them.
How many people can download one build? 100 per link. Upload the same bundle again for a fresh link and another 100.
Does the link ever expire? Yes, 60 days after upload. Re-uploading the same file produces a new one.
Why does Google Sign-In fail in a shared build? Google re-signs the build with an Internal App Sharing key, so the certificate fingerprint changes. Register the SHA-1 from the Internal test certificate section in Play Console.
Is this the same as sideloading an APK? No. A sideload bypasses the Play Store entirely; internal app sharing still installs through Play, requires the tester to enable the setting, and is re-signed by Google. Neither counts toward the requirement.
Where do I find it in Play Console? Test and release > Internal testing > Internal app sharing, or the standalone upload page at play.google.com/console/internal-app-sharing.
All four pages were read on 9 November 2026. Google changes these articles without notice; if a link’s behaviour contradicts this page, trust the help centre over us.
Register, create the app and choose your tester count. Every plan includes the same monitoring, support and participation guarantee.