How to share an APK with clients, without the mess
The build is done. The client is waiting. And the APK is sitting in your output folder with no good way to reach them. Email bounces it, chat apps mangle it, and a store invite takes days. Here is how to share an APK with clients so they are looking at the actual app within a minute of opening your message.
Why emailing or chatting an APK to a client fails
Sending the file itself feels direct, and it breaks in predictable ways:
- Size limits. Gmail caps attachments at 25 MB. A release APK with native libraries or bundled assets blows past that easily, and the bounce arrives after you've already told the client "it's on its way."
- Chat apps are worse. Messaging apps compress, rename, or quietly strip files. The client ends up with something that won't open, or a file buried three screens deep in a chat thread.
- The install gauntlet. Even when the file arrives, the client has to find it in Downloads, tap it, get stopped by Android, dig into settings to allow "install unknown apps," come back, and install. Most non-technical clients stall somewhere in that chain — and stall silently.
- Version chaos. By the third round, the client's phone holds
app.apk,app (1).apk, andapp-final-v2.apk. Feedback starts arriving about a build you fixed last week. - The iPhone problem. Plenty of clients carry iPhones. An APK simply cannot install on one, so the file-based route gives them nothing at all.
Notice the pattern: every failure dumps work on the person whose time you're billing for. The fix is to share a running app, not a file.
The real options, ranked
| Option | What the client does | Time to first look | Best for |
|---|---|---|---|
| Link-based preview (PreviewAPK) | Opens a link in any browser | About a minute | Approvals, progress builds, demos |
| Play internal testing | Accepts an invite with the right Google account, installs from Play | Hours to days (setup + review) | Formal betas with committed testers |
| File sharing (Drive, Dropbox) | Downloads the APK and sideloads it | Minutes, if nothing goes wrong | Technical clients who asked for the file |
Play internal testing is a legitimate tool — it distributes through the store, updates cleanly, and suits a structured beta. But it front-loads everything: a Play Console account, the app created in the console, the client's email added to a tester list, opt-in links, and review waits on new releases. That's a program, not a way to show today's build.
File sharing removes the size limit but keeps every other problem: the sideload gauntlet, version chaos, and the iPhone dead end. A link-based preview removes the file from the client's side entirely — which is why it wins for client work. Share an APK with a link covers the mechanics.
Step by step: share a build as a link
- Export the APK. Debug or release both work. If the client is approving look and flow, your current build is fine; if they're signing off before a store release, send the release build so they see exactly what ships.
- Upload it to PreviewAPK. Pick an Android version (10–15) and a device profile — Pixel 9 Pro or Galaxy S24. Choose the profile closest to what your client uses, if you know it.
- Wait a few seconds. A real Android device boots in the cloud, your app is installed and launched, and the session's share link is ready to copy.
- Send the link, plus a short note (next section). The client opens it in any browser — phone, tablet, or desktop — and sees the app running. They can watch while you drive, or drive it themselves.
- Only if they need it on a real phone: turn on the QR code/download option for that build. It stays off by default, so a shared link never doubles as a file download unless you decide it should.
What to send alongside the link
The link gets the app open. Your message gets you useful feedback instead of "looks good." Include four things, briefly:
- What changed in this build — two or three bullets, in client language, not commit messages.
- What to look at — "Please check the new checkout flow and the invoice PDF." Vague asks get vague approvals.
- What's known-broken — naming the rough edges yourself saves a round of duplicate reports and shows the build is under control.
- When you need the reply — a date keeps the approval from drifting a week.
One habit worth adopting: one session, one link. Each run mints a fresh share link, so when a fix ships you paste the new link into the thread — feedback always lands on the version that was actually on screen, never on a link that silently moved on to a newer build.
Try it with a live device
PreviewAPK is in private beta. Get early access to test your own builds.
FAQ
Can my client open the preview link on an iPhone?
Yes. The preview runs in the browser, so a client on an iPhone, iPad, or any computer can watch and drive it. What an iPhone can't do is install the APK itself — APKs are Android-only — which is exactly why the browser preview is the reliable way to show a client the build.
Does my client need to install anything or create an account?
No. Viewers of a PreviewAPK link install nothing and sign up for nothing. They open the link and the app is running in front of them. Accounts and tester lists are only needed for store-based testing tracks.
Can the client download the APK file from the share link?
No. Share links are view-only — nothing on them downloads, ever, and there's no setting that changes that. If you want the build on your own real phone, your portal can mint a short-lived install QR for you; clients only ever watch.
How is this different from Google Play internal testing?
Internal testing distributes through the Play Store: it needs a Play Console account, your app set up in the console, and the client's email on a tester list, and new builds can wait on review. A preview link skips all of that — it works the moment you upload, for anyone you send it to. Internal testing is still the better fit for a formal, long-running beta program.
Keep going
- Share an APK — the tool page: upload a build, run it, get its share link.
- Send test builds to testers — the same friction problem, on the beta side.
- Demo an Android app remotely — when the client meeting is a call, let them drive.