---
description: Learn how to distribute iOS and Android test builds to testers and stakeholders without TestFlight or the Play Store.
title: How to Distribute iOS and Android Apps to Testers - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/how-to-distribute-ios-and-android-apps-to-testers.png
---

[ Skip to content](#how-to-distribute-ios-and-android-apps-to-testers) 

[ 🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode.](/blog/announcing-the-capacitor-vault-plugin/) 

* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  Grafana Faro ](/docs/plugins/grafana-faro/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  Navigation Bar ](/docs/plugins/navigation-bar/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Vault ](/docs/plugins/vault/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* [  Assist ](/docs/cloud/assist/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

* [  Distributing iOS Apps ](#distributing-ios-apps)
* [  Automating the Process ](#automating-the-process)
* [  Conclusion ](#conclusion)

# How to Distribute iOS and Android Apps to Testers[¶](#how-to-distribute-ios-and-android-apps-to-testers "Permanent link")

Getting a test build onto a tester's phone should be simple — but if you've ever dealt with TestFlight review delays, Firebase profile installations, or setting up OTA manifest files by hand, you know it's anything but. In this guide, we'll walk through how to distribute iOS and Android builds to testers and stakeholders with just a link or QR code, no app store submission required.

[ ![Build and deploy your Capacitor app with Capawesome Cloud](../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](/) 

## Video Tutorial[¶](#video-tutorial "Permanent link")

This tutorial shows how to configure automatic Android app deployment to Google Play, which is a common next step after internal tester distribution workflows and helps you move from QA delivery to repeatable release automation.

For iOS release distribution, see [Upload iOS Builds to TestFlight Automatically](https://www.youtube.com/watch?v=6DY6kY8mUb8).

## The Problem with Test Build Distribution[¶](#the-problem-with-test-build-distribution "Permanent link")

Distributing test builds is a common task for any mobile development team, yet the process is often more complex than it needs to be.

**TestFlight** is Apple's official beta testing tool, but external testing requires a Beta App Review that can take anywhere from a few hours to several days. Internal testing is limited to 100 users who need App Store Connect roles, and every tester must install the TestFlight app first.

**Firebase App Distribution** supports both platforms but still relies on ad-hoc distribution for iOS, which means the same 100-device limit and UDID requirements apply. Testers also need to install a Firebase device profile before they can download builds, which adds friction.

Platforms like **Diawi** and **Loadly** make it easy to share a quick download link, but they typically lack CI/CD integration, version tracking, and team management features.

And with **Microsoft App Center** having shut down in March 2025, many teams are looking for a reliable replacement.

What most teams actually want is straightforward: **build the app, share a link, and let the tester install it with a single tap**.

## Over-the-Air Installation with Capawesome Cloud[¶](#over-the-air-installation-with-capawesome-cloud "Permanent link")

[Capawesome Cloud](/) includes a built-in app installation feature similar to what platforms like Diawi and Loadly offer — but fully integrated into the build pipeline. Every iOS development, ad-hoc, or enterprise build and every Android build displays an **Install App** button that lets testers install the app directly on their device with a single tap. No additional configuration or setup is required, and the feature is available at no extra cost.

The process works the same on both platforms: once a build is complete, you share a link or QR code with your tester, and they scan it to install the app. Let's walk through the specifics for each platform.

![Install App dialog for iOS in Capawesome Cloud](/docs/assets/images/screenshots/cloud-install-app-ios.png) 

## Distributing Android Apps[¶](#distributing-android-apps "Permanent link")

Android distribution is the simpler of the two platforms since there's no device registration required.

### Create a Build[¶](#create-a-build "Permanent link")

First, trigger a new Android build in Capawesome Cloud:

1. Navigate to the **Builds** page of your app.
2. Click **Build from Git** and select a Git reference (branch, tag, or commit).
3. Select **Android** as the platform and choose a build type (**Debug** or **Release**).
4. Click **Build** to start the build process.
Signing Certificates 

**Release** builds require a signing certificate (keystore). Refer to the [Android Signing Certificates](/docs/cloud/native-builds/certificates/android/) documentation for setup instructions.

### Install the App[¶](#install-the-app "Permanent link")

Once the build completes:

1. Open the build details page in Capawesome Cloud.
2. Click the **Install App** button.
3. Scan the **QR code** with the Android device or tap **Download** if you're already on the device.
4. Open the downloaded APK to start the installation.

Unknown Sources 

Android requires you to allow installations from unknown sources before installing an APK from outside the Play Store. See our [Install an APK on an Android Device](/docs/cloud/native-builds/guides/install-apk-on-android-device/) guide for device-specific instructions.

Google Play Protect 

Google Play Protect may show a warning about the app being from an unknown developer. You can dismiss this warning to proceed with the installation.

## Distributing iOS Apps[¶](#distributing-ios-apps "Permanent link")

iOS distribution requires a few extra steps due to Apple's code signing requirements. The tester's device must be registered in your Apple Developer account and included in the provisioning profile used to sign the build.

### Register the Device[¶](#register-the-device "Permanent link")

Every iOS device has a unique identifier (UDID) that must be registered before it can install a test build.

1. Find the device UDID using the [iOS UDID Finder](/tools/ios-udid-finder/) tool.
2. Register the device in the [Apple Developer Portal](https://developer.apple.com/account/resources) under **Devices**.
3. Update your provisioning profile to include the new device and re-upload it to Capawesome Cloud.
Device Limit 

Apple limits the number of registered devices to 100 per product family (iPhone, iPad, etc.) per membership year. Disabling a device does not free up a slot.

For detailed steps, refer to our [Install an IPA on an iOS Device](/docs/cloud/native-builds/guides/install-ipa-on-ios-device/) guide.

### Create a Build[¶](#create-a-build%5F1 "Permanent link")

1. Navigate to the **Builds** page of your app.
2. Click **Build from Git** and select a Git reference.
3. Select **iOS** as the platform.
4. Select **Development**, **Ad Hoc**, or **Enterprise** as the build type.
5. Select a signing certificate with a provisioning profile that includes the tester's device.
6. Click **Build** to start the build process.

### Install the App[¶](#install-the-app%5F1 "Permanent link")

Once the build completes:

1. Open the build details page in Capawesome Cloud.
2. Click the **Install App** button.
3. Scan the **QR code** with the iOS device or tap **Download** if you're already on the device.
4. The app will be installed on the device.

## Automating the Process[¶](#automating-the-process "Permanent link")

Manually triggering builds every time you want to share a test version gets old fast. With [Automations](/docs/cloud/automations/), you can configure Capawesome Cloud to automatically trigger a build whenever you push to a specific branch or create a tag. For example, you could set up an automation that builds a new iOS and Android version on every push to `main` or whenever a tag matching `v*` is created.

Combined with [notification integrations](/docs/cloud/integrations/), this creates a hands-off distribution workflow: a developer pushes code, Capawesome Cloud builds the app, and your QA team gets notified in Slack, Discord, or Microsoft Teams that a new build is ready to install. No one needs to open the Console, run a CLI command, or ping someone on the team — the build link is right there in the notification.

[Try Capawesome Cloud Free](/)

## Conclusion[¶](#conclusion "Permanent link")

Distributing test builds to testers doesn't have to involve long review waits or complicated setup. With over-the-air installation, you can go from a finished build to a running app on a tester's device in minutes — on both Android and iOS.

If you want to dive deeper into the installation process for each platform, check out our step-by-step guides for [Android](/docs/cloud/native-builds/guides/install-apk-on-android-device/) and [iOS](/docs/cloud/native-builds/guides/install-ipa-on-ios-device/). If you have questions, join the [Capawesome Discord server](https://discord.gg/VCXxSVjefW) or [subscribe](/newsletter/) to the Capawesome newsletter to stay updated.

May 8, 2026 

 Back to top 