Guide
How to share an APK with someone
Five ways to get an Android build onto someone else's phone, what breaks with each, and which to use when.
Android is far easier than iOS here: no device registration, no signing profile that expires, no UDIDs. Any phone can install any APK, once the person allows it. The difficulty is not technical — it is keeping track of what you sent, to whom, and which version they are actually running.
The options, honestly
| Method | Good for | What breaks |
|---|---|---|
| Chat app (WhatsApp, Telegram) | One build, one person, right now | Size limits, and the file is buried in a thread within a day |
| Google Drive / Dropbox | A build too large for chat | Recipients hit permission prompts; you get one link per file, forever |
| Play Internal Testing | Real pre-release testing | Requires a Play account per tester, a review wait, and your app already on Play |
| Your own web server | Full control | You build and maintain the plumbing |
| A distribution service | Repeated sharing with the same people | A dependency, and usually a cost |
If you just send the file
It works. Two things to tell the person, once:
- Android will ask them to allow installing from this source. It prompts at the right moment, and only once per app doing the installing — usually their browser.
- If a version of your app from the Play Store is already installed and was signed with a different key, the install will fail until they uninstall it. Same package name, different signature, is a refusal by design.
Where it actually goes wrong
Not on the install. On the bookkeeping.
- A month in, your client has eleven links from you and opens whichever message they scroll to.
- You get a bug report against a build you replaced twice.
- Nobody can tell you whether the person testing actually installed the version you asked them to.
- The file sits in someone's cloud storage indefinitely, still installable long after it should be.
Every one of those is a versioning problem wearing a distribution costume.
What to do instead
Whatever you use, aim for three properties:
- One link that stays correct. It should hand out the current build, not the build that existed when you sent it.
- A record of who installed what. Otherwise "it does not work" is unanswerable.
- An end date. A build from March should stop being installable at some point.
The Play Store option
If your app is already on Play, internal testing is genuinely good: up to 100 testers, no review delay for internal, and installs come through the Play Store itself. The friction is that every tester needs a Google account you have added, which is fine for colleagues and awkward for a client's operations manager.
It also does not help before your first release, which is exactly when you are sharing builds most.
Doing it with less bookkeeping
Hashdrop gives you the three properties above: one link per channel that always serves the current build, install counts per build and device, and retention that removes old artifacts while keeping the newest on each channel. Testers need no account — a link is enough. There is a free tier.