
How to Send an App Build to a Client for Testing (2026 Agency Guide)

The fastest, lowest-friction way to get an app build in front of a client for testing is an over-the-air install link: you upload the build once, the client taps a link or scans a QR code, and the app installs directly on their phone — no App Store, no review wait, no developer account on their side. For iOS the one real hurdle is device provisioning, which a good distribution tool handles for you.
For agencies and freelancers this is a recurring workflow, not a one-time event. You ship a build, the client tries it, you fix things, you ship again — often to someone non-technical who just wants to "see the app on my phone." The goal is to make that loop boringly reliable.
Why this is harder than it should be
- iOS device provisioning. An ad hoc iOS build only installs on devices whose UDID you registered before building. Collecting UDIDs from clients by hand is the classic headache. (See how to find and register a UDID.)
- Non-technical recipients. Clients don't have Xcode, don't know what a provisioning profile is, and shouldn't need to.
- TestFlight review latency. External TestFlight testing needs Beta App Review before the first build of each version reaches the client.
- Version chaos. Email a file and, three builds later, nobody knows which one the client is testing.
The low-friction workflow
- Build a signed app. For iOS, an ad hoc (or OTA-tool-managed) build; for Android, a universal APK. (See distributing an iOS app without the App Store and an Android app without the Play Store.)
- Upload it once to a distribution platform, ideally straight from CI so every build lands automatically.
- Send the client a link or QR code. They tap it and the app installs over the air.
- Collect feedback, fix, and push the next version to the same link and group.
The iOS piece is where tooling earns its keep. With Appisto, the client opens the install link and their device registers its UDID automatically — you never have to ask them to dig through Settings to read out a 40-character ID. From then on, every build you upload is available to them at the same link.
iOS vs Android differences for clients
- iOS: the client installs over the air, then trusts the developer profile once under Settings → General → VPN & Device Management. If they see an "Untrusted Developer" warning, that is the expected one-time step.
- Android: the client taps the link, allows installation from the source once, and installs the APK directly — no per-device registration needed.
Making it repeatable
The difference between "sending a build" and "running client testing" is persistence:
- Persistent tester groups so a new client device is added once, not per build.
- Release notes on each version so the client knows what changed and what to check.
- CI/CD upload so a merged branch automatically produces a testable build — see the Appisto workflow for a Git-based version of this.
Set that up once and each round of client feedback costs you a git push, not an afternoon of provisioning.
Frequently asked questions
How do I send an iOS app to a client without TestFlight? Register the client's UDID for an ad hoc build, or use an OTA tool that collects it automatically and sends a one-tap install link — no App Store Connect account or review wait on the client's side.
How can a non-technical client install a test build? Send one install link or QR code. On iOS they tap to install and trust the profile once; on Android they tap and allow installation. No developer tools required.
What's the easiest way to share an app for review? Upload once, share the link, and push every new version to the same link and tester group so the client always installs from one place.
Key takeaways
- The lowest-friction path is an OTA install link the client taps — no App Store, no review, no account on their side.
- The iOS friction is device provisioning; automatic UDID collection removes it.
- Make it repeatable with persistent tester groups, release notes and CI/CD uploads.
- Appisto is built for exactly this agency-to-client loop across iOS and Android, EU-hosted, with builds that don't expire on a 90-day clock. Compare the best internal app distribution tools if you want the full field.
Ready to streamline your internal app distribution?
Start sharing your app builds with your team and clients today.
No app store reviews, no waiting times.