Shipping a mobile app normally means a Mac for the iOS half, Android Studio for the other,
a pile of signing files nobody remembers how to regenerate, and a CI pipeline to tie them
together. VibeView cloud builds replace all of that with one command:
vibeview build --cloud. Your source is packed, compiled on a managed toolchain
in a clean, isolated environment, and handed back — from Windows, Linux or a Mac.
The same command covers every stage of a release. Build a simulator or emulator build to
check your change on a cloud device, add --production for a signed release
build, then run vibeview submit to upload it to TestFlight or Google Play.
What you can build
| Platform | Development build | Production build | Store upload |
|---|---|---|---|
| iOS | Simulator .app, runs on a cloud iPhone or iPad | Signed .ipa | TestFlight |
| Android | Emulator .apk, runs on a cloud Android phone or tablet | Signed .aab or .apk | Google Play: internal, alpha, beta or production track |
| Apple TV (tvOS) | Simulator .app, runs on a cloud Apple TV | Signed .ipa | TestFlight |
| Android TV | Emulator .apk, runs on a cloud Android TV | Signed .aab or .apk | Google Play track |
Roku channels are the one exception: they are not cloud-built. Package your channel as usual and upload it to run on a Roku in your browser.
How it works
- Describe the build once. A build block in
vibeview.jsonnames the command that produces your build and where the result lands. If a platform has none yet, the CLI asks and saves your answers — or ask your coding agent to write it. - Build.
vibeview build --cloud --platform allbuilds every configured platform and streams the logs to your terminal. A simulator build attaches itself to your app in VibeView, ready to open on a device. - Sign.
vibeview build --cloud --productionproduces a signed release build with credentials you uploaded or VibeView generated. - Ship.
vibeview submit --platform iosuploads to TestFlight;vibeview submit --platform android --track internalto a Play track.
Signing handled
Generate an Android keystore with one command, or connect an App Store Connect API key and VibeView creates the iOS and tvOS certificate and provisioning profile through Apple’s API. Existing signing files can be uploaded instead. Passwords are prompted, never passed as flags.
Build numbers that never collide
Turn on autoIncrement and every production build gets the next number from
a per-app counter. With an App Store Connect key, the first number starts above the
builds you already uploaded.
Secrets kept out of your repo
Registry tokens, service-account files and API keys are stored as build variables and secrets, scoped to your organization or one app, and masked in build logs.
Built for CI and coding agents
--json emits machine-readable build events, exit codes are reliable, and a
signed webhook fires when a build finishes. The Builds page hands you a ready-made
prompt for Claude Code, Codex or Cursor that sets up and starts the builds.
Then run the build on a live device
This is the part a build service on its own doesn’t give you. Every simulator or emulator build lands in your app’s build history and opens on a cloud iPhone, Android phone, Apple TV or Android TV in your browser. Share it as a link with someone who has no Mac and no account, run your recorded tests against it, or let your coding agent install it, tap through it and check its own work. A debug build also works with live development: edits on your machine hot-reload onto the cloud device in about a second.
Expo and bare React Native
A managed Expo project needs no ios/ or android/ folder in git:
the build command runs npx expo prebuild and then the native build, and the
CLI suggests that command for you. A bare React Native project uses whatever build command
it already has, because the command is yours. The
Kitlist sample app is a small Expo project
built, signed and shipped to both stores entirely through cloud builds — its config is a
working starting point.
Flutter, Capacitor and native projects
The builders have the Flutter SDK, so a Flutter app builds with
flutter build and opens on a cloud iPhone or Android emulator as it is, debug
build included. A Capacitor or Ionic app builds its web app, syncs it into the native
projects and builds those. Kotlin Multiplatform and plain Xcode or Gradle projects build
with their own tools. From CLI 0.42.0 the CLI recognizes each one and suggests the commands; the
cloud builds docs list what each framework
needs.
- Flutter cloud builds, FVM pins included
- Capacitor and Ionic cloud builds
- Kotlin Multiplatform cloud builds
What it doesn’t do
One Xcode, one Node.js. iOS and tvOS builds use a single stable Xcode
release and every build runs on Node.js 22; you can’t pick another version per build.
Beta Xcode releases aren’t offered — App Store Connect doesn’t accept them anyway. Flutter
and Ruby are the exceptions: a project picks its Flutter release with FVM and, on iOS
builds, its Ruby with .ruby-version.
The store upload is the binary only. Store listings, screenshots, release notes and App Review stay in App Store Connect and Play Console. A brand-new app needs its record created in each console once before the first upload.
Production builds aren’t run here. A signed .ipa is for a
physical device or the store, so VibeView’s simulators can’t install it — check your
change on the simulator build, then ship the production one.
What it costs
Every plan includes cloud builds each month — 15 on Free, 25 on Dev, 65 on Starter and 330 on Pro. Beyond that, each build draws from usage credit: $1.50 per iOS or tvOS build and $0.75 per Android or Android TV build on paid plans, $2 and $1 on Free. Builds canceled while queued, or that fail for a reason on our side, are not charged. Builds time out after 45 minutes on Free and two hours on paid plans. See pricing for everything each plan includes.
Guides
- Build a React Native iOS app without a Mac
- Build an Android app in the cloud
- Build an Apple TV app without a Mac
- Build an Expo app without EAS
- Build a Flutter iOS and Android app without a Mac
- Build an Ionic or Capacitor iOS app without a Mac
- Build a Kotlin Multiplatform iOS app without a Mac
- Build a native iOS app without a Mac, plus Android
- Upload to TestFlight without a Mac
- An AI agent shipped an Expo app to TestFlight in 43 minutes
- An AI agent ships an Apple TV and Android TV app in 46 minutes
Coming from another build service? EAS Build, Codemagic and Ionic Appflow alternatives set out where each differs, with sources.
Frequently asked questions
Can I build an iOS app without a Mac?
Yes. Run vibeview build --cloud from Windows, Linux or a Mac and the iOS build runs on a managed macOS toolchain with a stable Xcode release. You get a simulator build that opens on a cloud iPhone, or, with --production, a signed .ipa you can upload to TestFlight with vibeview submit. You still need your own Apple Developer account to sign and publish.
Does VibeView make production builds, or only simulator builds?
Both. A regular cloud build produces a simulator or emulator build that runs on a VibeView cloud device. Adding --production produces a signed release build instead: an .ipa for iOS and tvOS, an .aab or .apk for Android and Android TV. Production builds are downloaded or sent straight to TestFlight or a Google Play track.
Which platforms can be cloud-built?
iOS, Android, Apple TV (tvOS) and Android TV, both as simulator or emulator builds and as signed production builds. Roku channels are not cloud-built: package the channel as usual and upload it, and it runs on a Roku in your browser.
Does it work with Expo?
Yes. A managed Expo project needs no ios/ or android/ directory in git: the build command runs npx expo prebuild for the platform and then drives the native build. Bare React Native projects work too, because the build command is yours. Production builds can take their build number from VibeView, so Apple and Google never reject a reused one.
Does it work with Flutter, Capacitor or a native project?
Yes. The builders have the Flutter SDK, Xcode with CocoaPods, and the Android SDK with Java 17 and 21, and vibeview build --cloud (CLI 0.42.0 and later) suggests the build commands for Flutter, Capacitor and Ionic, Kotlin Multiplatform, and native Xcode or Gradle projects. A cloud build runs whatever shell command you give it, so it isn’t limited to those: the command just has to produce a simulator .app or an emulator .apk.
Do I need to create signing certificates myself?
No. VibeView can generate an Android keystore for you, and with an App Store Connect API key it creates the iOS or tvOS distribution certificate and provisioning profile through Apple’s API. If you already have signing material, upload the .p12 and profile or the keystore instead. One Android keystore signs both phone and Android TV builds.
Can it publish to the App Store and Google Play?
vibeview submit uploads a signed production build to TestFlight or to a Google Play track (internal, alpha, beta or production). It uploads the binary only: store listings, screenshots, release notes and App Review stay in App Store Connect and Play Console, the same as if you had uploaded the file by hand.
How much does a cloud build cost?
Every plan includes cloud builds each month: 15 on Free, 25 on Dev, 65 on Starter and 330 on Pro. Builds beyond that draw from usage credit: $1.50 per iOS or tvOS build and $0.75 per Android or Android TV build on paid plans, $2 and $1 on Free. A build canceled while queued, or one that fails for a reason on our side, is not charged.
How is this different from EAS Build?
Both compile, sign and submit React Native apps without a Mac. VibeView also puts every simulator build on a live cloud device — iPhone, Android phone, Apple TV or Android TV — that you can open in a browser, share as a link, test and hand to a coding agent. The EAS Build alternative page compares the two line by line, with sources.