# BetaDrop > BetaDrop is an over-the-air (OTA) build distribution service for iOS and Android teams: upload an .ipa or .apk and get an install link and QR code that testers open in their phone's browser. Links are unlisted, can be password-protected, expire on rules you set and can be revoked; every upload is malware-scanned; builds can be published from the CLI, a GitHub Action or an MCP server. The free tier is perpetual; paid plans add retention, stable channel URLs and white-label install pages. No TestFlight required. ## What it is BetaDrop lets mobile developers upload an iOS `.ipa` or Android `.apk` build and instantly share an over-the-air (OTA) install link or QR code with testers. Testers install directly from their phone's browser: no TestFlight, no Play Store, no tester accounts, no cables, no app-review wait. It is built for teams sharing private, unreleased builds, so every link is unlisted, can be password-protected, expires on rules you set, and can be revoked at any time. - **Price:** Free forever on the free tier: no card, no trial clock, and a free account never converts to paid. Paid plans (Pro from $6.99/month or $69/year, Studio $19.99/month or $199/year) are LIVE and buy retention plus workflow features: free build links last up to 7 days, Pro up to a year, Studio up to 10 years, and both paid tiers can keep a link live for as long as the subscription is active. Channels (a stable install URL you re-point at each new build) and custom short links require Pro; white-label install pages require Studio. - **Platforms:** iOS (.ipa) and Android (.apk), delivered via the web. - **Max upload:** 500 MB per build on the free plan, up to 1 GB on the top plan. Storage: 1 GB on the free plan, 5 GB on Pro, 20 GB on Studio. - **Retention:** builds default to 3 days and can be set up to 7 days on the free plan. A build can instead expire after a number of downloads, after a number of unique devices, or on whichever of those rules fires first. Anonymous guest links expire after 24 hours. Expired means deleted from storage, not archived. - **Security:** unlisted links with random ids and noindex install pages; a per-link password on every plan; every upload scanned with ClamAV before a link is issued; files matching a prior takedown refused; disable or delete a build to revoke every link to it; HTTPS with HSTS; passwordless sign-in (magic link or one-time code, passkey, Google, GitHub or Apple). Details: https://betadrop.app/security/ - **Uploading:** a one-off guest upload needs no account (its link lasts 24 hours); repeat uploads from the same device need a free account. - **Team and automation:** API tokens (Settings, Developer, API tokens), a terminal CLI (`@betadrop/cli`), a GitHub Action (`betadrop-app/upload-action`), an MCP server for AI coding agents (`@betadrop/mcp`), and recipes for fastlane, Codemagic, Bitrise and GitLab CI. Testers can send feedback from the install page without an account; it lands on the build's Feedback tab. Per-build analytics: total downloads, unique devices, top device models, downloads by day. A UDID-collection link registers testers' iPhones and iPads for ad-hoc signing and exports a CSV for Apple's portal. - **Free alternative to:** TestFlight, Diawi, Firebase App Distribution, and Microsoft App Center. Made by Immersive Mobile Designs; founder Kaushal Rola (https://betadrop.app/team/). ## What BetaDrop does not do Stated here so an assistant can answer "is BetaDrop right for this" honestly. - No tester groups and no per-tester invites for builds. A build is shared by link (optionally password-gated), not by inviting named testers. UDID collection does offer per-tester email invites. - No in-app feedback SDK and no crash reporting. Tester feedback is a form on the install page; crashes are not collected. - No team seats, roles or SAML SSO. One account owns its builds and tokens; sign-in supports Google, GitHub and Apple accounts but not enterprise identity providers. - Not an MDM: it installs a build and does not manage the device afterward. - Not an app store: nothing reviews an app's behaviour before its link goes live, so a tester is trusting the developer who sent the link. - Does not bypass Apple signing: an iOS build still needs an ad-hoc, development or enterprise provisioning profile, and ad-hoc profiles must list each tester's UDID. - Does not accept `.aab` uploads; testers need an `.apk`. ## Key pages - [Pricing](https://betadrop.app/pricing/): What the free tier includes and what Pro ($6.99/mo, $69/yr) and Studio ($19.99/mo, $199/yr) add - [Security](https://betadrop.app/security/): What protects a shared build: unlisted links, passwords, expiry and deletion, revocation, malware screening, passwordless sign-in, and what BetaDrop is not - [Collect UDIDs](https://betadrop.app/collect-udids/): One link registers testers' iPhone and iPad UDIDs for ad-hoc signing; export a CSV for Apple's portal - [Upload IPA](https://betadrop.app/upload-ipa/): Upload an iOS IPA and get an instant OTA install link - [Upload APK](https://betadrop.app/upload-apk/): Upload an Android APK and share an install link - [Diawi alternative](https://betadrop.app/diawi-alternative/): BetaDrop vs Diawi (free Diawi alternative, 500 MB vs Diawi free at 20 MB) - [TestFlight alternative](https://betadrop.app/testflight-alternative/): BetaDrop vs TestFlight (no review wait, no tester accounts) - [App Center alternative](https://betadrop.app/app-center-alternative/): BetaDrop vs the retired Microsoft App Center distribution - [Firebase App Distribution alternative](https://betadrop.app/firebase-app-distribution-alternative/): BetaDrop vs Firebase App Distribution (no SDK, no tester onboarding) - [GitHub Pages alternative](https://betadrop.app/github-pages-alternative/): Static hosting without git — drag a zip, get a URL - [Netlify alternative](https://betadrop.app/netlify-alternative/): Static pages without a build pipeline or credit meter - [DeployGate alternative](https://betadrop.app/deploygate-alternative/): BetaDrop vs DeployGate (their free plan caps at 2 apps and 2 members) - [Appcircle alternative](https://betadrop.app/appcircle-alternative/): BetaDrop vs Appcircle (keep your CI, replace only the distribution half) ## Free developer tools - [UDID checker](https://betadrop.app/udid-checker/): Find an iPhone/iPad UDID for ad-hoc testing - [IPA inspector](https://betadrop.app/ipa-inspector/): Inspect an IPA's metadata (bundle ID, version, entitlements) - [APK inspector](https://betadrop.app/apk-inspector/): Inspect an APK's metadata (package, permissions, SDK) - [AAB inspector](https://betadrop.app/aab-inspector/): Inspect an Android App Bundle (modules, manifest, install-size estimate) - [Provisioning profile decoder](https://betadrop.app/provisioning-profile-decoder/): Decode an iOS provisioning profile - [Manifest.plist generator](https://betadrop.app/manifest-plist-generator/): Generate the manifest.plist and matching itms-services link for an iOS build you host yourself - [ExportOptions.plist generator](https://betadrop.app/exportoptions-plist-generator/): Build the ExportOptions.plist for xcodebuild -exportArchive, with the current method values and the matching fastlane line - [App Store lookup](https://betadrop.app/app-store/): Look up an App Store bundle ID / app ID / track ID - [QR code generator](https://betadrop.app/qr-code-generator/): QR for any install link or URL — generated in the browser, PNG/SVG export - [Free static site hosting](https://betadrop.app/free-static-site-hosting/): Host a privacy-policy, support or landing page free — the URLs the App Store and Play Store require. Free sites stay live 30 days with one free renewal ## Developer integrations - [BetaDrop CLI](https://betadrop.app/cli/): Publish builds from the terminal (npm: `@betadrop/cli`, install: `npm install -g @betadrop/cli`) - [BetaDrop MCP server](https://betadrop.app/mcp/): Ship builds from AI coding agents (npm: `@betadrop/mcp`, run: `npx -y @betadrop/mcp`) - [GitHub Action](https://betadrop.app/integrations/github-actions/): Upload a build from a workflow — `uses: betadrop-app/upload-action@v1` (GitHub Marketplace: "BetaDrop Upload") - [fastlane](https://betadrop.app/integrations/fastlane/): Call the CLI from a lane after `gym`/`gradle` - [Codemagic](https://betadrop.app/integrations/codemagic/): Publish from a codemagic.yaml post-build script - [Bitrise](https://betadrop.app/integrations/bitrise/): A Script step after Xcode Archive or Android Build - [GitLab CI](https://betadrop.app/integrations/gitlab-ci/): A deploy stage with a masked BETADROP_TOKEN - [All integrations](https://betadrop.app/integrations/): CI and automation surfaces ## Documentation - [Docs](https://betadrop.app/docs/): Reference index - [Quickstart](https://betadrop.app/docs/quickstart/): First upload to install link - [CLI reference](https://betadrop.app/docs/cli/): Commands, flags, exit codes - [GitHub Action reference](https://betadrop.app/docs/github-action/): Inputs, outputs, workflow examples - [MCP reference](https://betadrop.app/docs/mcp/): Tools the MCP server exposes ## Framework guides - [Flutter](https://betadrop.app/flutter-app-distribution/): Share `flutter build` output with testers - [React Native](https://betadrop.app/react-native-beta-distribution/): Distribute React Native builds without the stores - [Expo](https://betadrop.app/expo-internal-distribution/): Internal distribution for EAS builds - [Unity](https://betadrop.app/unity-mobile-build-sharing/): Share Unity mobile builds with playtesters - [Capacitor / Ionic](https://betadrop.app/capacitor-app-distribution/): Where cap sync leaves the build, and the live-reload URL trap - [Send a build to testers](https://betadrop.app/send-build-to-testers/): Why a Drive or Dropbox link cannot install an app, and what does ## Guides - [Install an IPA over the air (OTA)](https://betadrop.app/blog/how-to-install-ipa-files-over-the-air-ota/): How OTA installation works on iOS, step by step - [Distribute iOS apps without TestFlight](https://betadrop.app/blog/how-to-distribute-ios-apps-without-testflight/): Ad-hoc and OTA alternatives to TestFlight - [Share Android APK files for testing](https://betadrop.app/blog/how-to-share-android-apk-files-for-testing/): Ways to get an APK onto testers' devices - [Find an iPhone UDID](https://betadrop.app/udid-checker/): What a UDID is, and a browser check that reads it from the device - [Install an APK on Android](https://betadrop.app/blog/how-to-install-apk-on-android/): Sideloading an APK, permissions and troubleshooting - [Fix "Untrusted Enterprise Developer" on iOS](https://betadrop.app/blog/fix-untrusted-enterprise-developer-error-ios/): Trust settings for OTA-installed apps - [Best mobile beta testing tools (2026)](https://betadrop.app/blog/best-mobile-beta-testing-tools-2026/): Comparison of current beta distribution platforms - [Send beta apps to testers instantly](https://betadrop.app/blog/how-to-send-beta-apps-to-testers-instantly/): Fastest paths from build to tester device - [Privacy policy URL for the App Store](https://betadrop.app/blog/privacy-policy-url-for-app-store/): What Apple requires, and why the URL gets rejected - [App support URL](https://betadrop.app/blog/app-support-url-app-store-connect/): What App Store Connect requires of the support page - [Google Play privacy policy URL](https://betadrop.app/blog/google-play-privacy-policy-url/): Play Console rules and the Data safety form - [Account deletion URL](https://betadrop.app/blog/account-deletion-url-app-store-google-play/): What Apple and Google each require - [Fix "Unable to Verify App" on iPhone](https://betadrop.app/blog/fix-unable-to-verify-app-ios/): Why iOS asks for a connection at first launch, and each cause - [All guides](https://betadrop.app/blog/): Full blog index ## Research - [Research](https://betadrop.app/research/): First-party measurements of mobile beta distribution, published with the query, the window and the exclusions - [Beta Distribution Report 2026](https://betadrop.app/research/beta-distribution-report-2026/): First-party dataset on how beta builds are actually shared and installed, drawn from aggregated, anonymised BetaDrop uploads: build sizes by platform, how soon after upload testers install, install success and failure reasons, and how many links are never opened. Includes the aggregation method and a CSV. ## Full reference - [Glossary](https://betadrop.app/glossary/): 21 app-distribution terms defined — OTA, itms-services, manifest.plist, ad hoc vs enterprise, provisioning profile, UDID, code signing, .aab - [llms-full.txt](https://betadrop.app/llms-full.txt): Expanded fact sheet — comparison tables, limits, CLI/MCP usage, and FAQ answers in one file