Flutter makes one codebase cheap and two build machines expensive. The iOS half needs macOS and Xcode, the Android half the Android SDK, the NDK and a Java that matches your Gradle, and both need the Flutter release your project was written against. VibeView cloud builds have all of it, so the only thing on your machine is your editor.

Then the build doesn’t stop at a file. A simulator build lands in your app on VibeView and opens on a live device in a browser tab, so you, a tester or a client can tap through it a minute after the build finishes, and your coding agent can drive it to check its own change.

What the builders have for Flutter

Flutter

Flutter 3.47.7 (stable) by default, with 3.44.9 ready too. FVM is installed: a committed .fvmrc picks your release, and any other release installs during the build.

iOS

A managed macOS toolchain with a stable Xcode release and CocoaPods. Simulator builds need no signing; production builds are signed with credentials you upload or VibeView generates.

Android

The Android SDK and NDK, Java 17 and 21, and the Gradle Flutter’s template uses, already downloaded so a template build takes seconds rather than minutes.

Ruby

Ruby with Bundler on both platforms, so a Gemfile-pinned CocoaPods or a Fastlane lane runs inside the build command.

Every build log starts with the versions it ran, and the cloud builds docs list what each one needs.

How it works

  1. Run the build from your project root. The CLI recognizes a Flutter project by its pubspec.yaml and suggests the build commands, starting with fvm flutter when your project pins its release with FVM. Your answers are saved to vibeview.json for every later build.
    npm install -g vibeview
    vibeview build --cloud --platform all
  2. Open the build on a cloud device. The debug build runs as it is, with no flutter run and no debugger attached. Open it on a cloud iPhone or Android emulator, share it as a link, or run a recorded test against it.
    # what the CLI suggests
    flutter build ios --simulator --debug
    flutter build apk --debug
  3. Build the release and submit it. Generate or upload an Android keystore, add the signing block the App Signing docs show to android/app/build.gradle.kts, and build the .aab. vibeview submit uploads it to a Play track; an iOS release goes to TestFlight the same way, with a build command you write once.
    vibeview credentials generate --platform android --name release
    vibeview build --cloud --production --platform android
    vibeview submit --platform android --latest --track internal

Then run the build on a live device

Here the device is part of your plan, not an add-on. Every simulator or emulator build lands in your app’s build history and opens on a cloud iPhone or Android device 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.

What it doesn’t do

No Apple TV. Flutter itself doesn’t support tvOS. A Flutter app runs on the Android TV devices that run x86_64, since Flutter builds no 32-bit x86 code, with a build command you enter.

iOS release builds need your command. The CLI suggests the Android release command but not the iOS one, because iOS signing is set up per project. The guide shows the command.

Other Flutter releases take longer. A release the builders don’t have ready downloads during the build, which adds about two minutes, and on Android it may download its own NDK and Gradle too.

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 build and $0.75 per Android 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. See pricing for everything each plan includes.

Keep going

Comparing Flutter build services? Codemagic alternative sets out where the two differ, with sources.

Frequently asked questions

Can I build a Flutter iOS app without a Mac?

Yes. vibeview build --cloud runs the iOS build on a managed macOS toolchain from Windows, Linux or a Mac. You get a simulator build that opens on a cloud iPhone, or, with --production, a signed .ipa that vibeview submit uploads to TestFlight. Signing and publishing still need your own Apple Developer account.

Which Flutter version do cloud builds use?

Flutter 3.47.7 (stable) by default, and 3.44.9 is ready too. If your project pins its release with a committed .fvmrc, run Flutter as fvm flutter in the build command and the build uses the pinned release; a release the builders don’t have ready downloads during the build. Without FVM, fvm spawn <release> build ... names one in the command. The build log prints the version first.

Do Flutter debug builds run on the cloud devices?

Yes, as they are. A Flutter debug build doesn’t need flutter run or a debugger attached, so the simulator .app and the debug .apk install and open on VibeView’s cloud iPhones and Android emulators like any other build.

Can it publish my Flutter app to Google Play and TestFlight?

Yes. A production build signs the .aab with a keystore you upload or VibeView generates, and vibeview submit sends it to an internal, alpha, beta or production track. iOS release builds are signed with an uploaded or generated certificate and profile and submitted to TestFlight. Store listings and review stay in Play Console and App Store Connect.

Does it work with Fastlane?

Yes. The builders have Ruby with Bundler, so a build command can run bundle install and bundle exec fastlane with your own lanes. Most projects don’t need it: the CLI’s commands and vibeview submit cover building, signing and uploading.