Put BetaDrop at the end of your build pipeline
Most pipelines stop one step short. The build compiles, signs, and lands as an artifact in a storage tab someone has to dig out, download, and forward. The useful last step is different: a link a tester can open on their phone. Every integration on this page makes that the thing your pipeline emits — upload the .ipa or .apk, get back an OTA install link and QR code, and testers install from the browser with no accounts and no store review.
The common core is the CLI. It runs anywhere Node.js runs, which gives “which CI do you support?” a short answer: all of them. Two lines turn any job that produces a build into one that distributes it.
npm install -g @betadrop/cli
betadrop publish ./app-release.apk --ci # prints only the install URLIn CI the command authenticates from a BETADROP_TOKEN environment variable — a token you generate once in Settings and store as a secret.
CI and automation
Start with wherever your builds already happen. Each guide ends with a pipeline that distributes beta builds automatically on every push, tag, or lane run.
Add one step to the workflow that already builds your app. Every push to main, tagged release, or merged PR uploads the APK or IPA and captures the install link as a step output, ready to drop into a PR comment or a release note. The step calls the CLI directly; a packaged one-step Action is being prepared for the GitHub Marketplace.
Set up GitHub Actions →If building and signing already live in your Fastfile, distribution belongs there too. A lane step after gym or gradle shells out to the CLI, so the same lane that produces the binary ends with the link that gets it installed — on your Mac and on every CI that runs your lanes.
The tool the other integrations are built on, and the right choice when you want no abstraction at all. betadrop publish uploads a build from a terminal or any script; --ci prints only the install URL, and --name and --notes label the build so testers know what changed.
For builds that start in the editor rather than in CI. Connect Claude Code, Cursor, or Copilot to the BetaDrop MCP server and ship a build by asking for it: the assistant uploads the binary and returns the install link without you leaving the conversation.
Connect your AI assistant →Framework guides
Cross-platform toolchains each leave their binaries somewhere different. These guides start from your framework's build command and end at an install link.
One codebase, two binaries. The guide covers where flutter build apk and flutter build ipa leave their output, and how to publish both so Android and iOS testers get their links from the same pipeline run.
For bare React Native projects that build with Gradle and Xcode. Covers assembling a release APK and archiving an IPA, then wiring both into the CLI so even a JavaScript-only change reaches testers as an installable build.
Share a React Native build →EAS Build produces the artifact; BetaDrop distributes it. The guide shows how to take an internal-distribution build out of EAS and hand testers a link that installs without TestFlight or store review.
Distribute an Expo build →Game builds are the heaviest of the lot, and playtesters are rarely developers. This guide covers exporting from Unity for Android and iOS, then sharing a build as a QR code a playtester can scan from the couch.
Share a Unity build →What a pipeline upload gets you
Authentication is a token, not a password: generate one under Settings → Developer → API tokens and store it as a secret in your CI system. Testers need nothing at all — no account, no companion app, no cable. They open the link or scan the QR code and install from the phone's browser. For iOS, BetaDrop generates the itms-services manifest automatically, and Apple's signing rules still apply: an ad-hoc build installs only on devices whose UDID is in the provisioning profile, and enterprise builds need the one-time trust step.
Links a pipeline creates behave exactly like links created by hand: builds up to 500 MB upload free, a link lives for 3 days by default, and a free account can extend it to 30 days.
When you don't need a pipeline integration
If you cut a tester build once a week, drag-and-drop is genuinely faster than maintaining a workflow file. The upload IPA and upload APK pages take a signed build and return a link in seconds, and guest uploads work without an account. Automate when uploading becomes the chore: nightly builds, a link per pull request, or anything you catch yourself doing more than a couple of times a day.
And if your beta program needs public opt-in at scale — a link anyone can use, and thousands of testers you never collect a device id for — TestFlight is still the right tool for that last mile, and the comparison covers where each fits.
Frequently asked questions
Can my CI pipeline upload builds to BetaDrop?
Yes. Install the CLI inside the job with npm install -g @betadrop/cli, expose a CI token as the BETADROP_TOKEN environment variable, and run betadrop publish with the path to your .ipa or .apk. Adding --ci makes the command print only the install URL, so you can capture it into a step output, a PR comment, or a Slack message.
Do testers need BetaDrop accounts to install CI builds?
No. Every upload produces an install link and QR code, and testers install straight from the phone's browser — no tester accounts, no cables, no store review wait. Apple's signing rules still apply to iOS builds: an ad-hoc build installs only on devices whose UDID is in the provisioning profile, and enterprise builds need the one-time trust step. Android APKs install directly once the tester allows installs from their browser.
How do BetaDrop CI tokens work?
Generate a token under Settings → Developer → API tokens on betadrop.app, then store it as an encrypted secret in your CI system. In CI, betadrop publish reads the token from the BETADROP_TOKEN environment variable, so it never appears in your workflow file or your logs. On your own machine, betadrop login --token saves it once instead. If a token ever leaks, revoke it from the same settings screen and issue a new one.
Which CI systems work with BetaDrop?
Any CI that can run Node.js — which in practice is all of them: GitHub Actions, GitLab CI, CircleCI, Bitrise, Codemagic, Jenkins, Azure Pipelines, or a plain shell script on a build machine. There is no per-vendor plugin to wait for, because the integration is the CLI itself: install @betadrop/cli in the job and call betadrop publish after your build step.
Ship your next green build to a phone
Install the CLI, publish the build your pipeline just produced, and send the link.