Dartvel, home
Docs
Features
Studio
Cloud
Compared

Search the site

GitHub
pub.dev

FLUTTER WITHOUT A MAC

Flutter without a Mac: what works, and what the Mac is actually for.

Apple requires its own tools to compile and sign an iOS, macOS or tvOS application, and those tools run on macOS. That is the whole of the restriction, and it covers running on an iPhone as well as building for one. Everything else needs no Apple hardware: writing the app, the website, Android, the Windows or Linux desktop, Samsung TVs, the backend, the database and the admin.

On Windows or Linux: dartvel dev, and dartvel build web, web-server, android, tizen and vscode. Flutter does not cross-compile desktops, so windows builds on Windows, and linux and sony-elinux build on Linux.

The Mac is needed for dartvel build ios, macos and tvos, and for running a development build on an iPhone or the iOS simulator.

Testing on a phone without a Mac means an Android phone. See below.

Thanks to the projects these targets are built on:

flutter-tizen

by Samsung

flutter-elinux

by Sony

flutter_vscode

by SlowGen

Credits and licences

WHAT YOU CAN DO

Everything except the Apple compile step.

Write the app, hot reload, dartvel dev

Needs a Mac?: No

Pair an Android phone over the QR code

Needs a Mac?: No

Pair an iPhone or the iOS simulator

Needs a Mac?: Yes, Xcode starts the development build

dartvel build web and web-server

Needs a Mac?: No

dartvel build android, and ship to Google Play

Needs a Mac?: No

dartvel build windows or linux

Needs a Mac?: No Mac, and each on its own operating system

dartvel build tizen, sony-elinux, vscode

Needs a Mac?: No

Backend, database, auth, queues, Studio

Needs a Mac?: No

dartvel build ios, macos, tvos

Needs a Mac?: Yes, Xcode

Signing an IPA, and App Store submission

Needs a Mac?: Yes, Xcode

TEST ON A PHONE

dartvel dev pairs a phone. Without a Mac, that phone runs Android.

dartvel dev prints a QR code that pairs a development build of your app, and every save hot reloads it. On Android the development build installs like any APK and needs nothing from Apple. On an iPhone it is a debug build that has to be started from Xcode or flutter run, and in CI the iOS pairing is proven on the simulator, which also needs a Mac. Expo users are used to scanning a code with Expo Go on an iPhone and no Mac. Dartvel Preview, its equivalent, runs on Android and desktops and does not run on an iPhone yet.

dartvel build android --profile development
dartvel dev
# scan the QR code from the phone

Copy code to clipboard

THREE ROUTES

Getting an iOS build when you do not own a Mac.

A hosted macOS runner. GitHub Actions gives public repositories free macOS minutes, and Dartvel is built and verified that way: the iOS and tvOS rows in the build status table were produced on a runner, with the artifact downloaded and inspected.

A rented Mac. MacStadium, Scaleway and others rent one by the hour or the month, and Xcode runs on it exactly as it would on your desk.

dartvel build ios --cloud. The build runs on our macOS workers, the log streams to your terminal, and the build downloads into build/cloud checked against its SHA-256. Cloud is built and not open yet, it will be paid, and a signed IPA from it is not built yet.

# on a macOS runner, or a Mac you rent
dartvel build ios --format ipa

# or, when Cloud opens
dartvel build ios --cloud

Copy code to clipboard

HONESTLY

What this page is not claiming.

Flutter builds and runs iOS apps through Xcode, and Xcode runs only on macOS, so Dartvel does not compile iOS on Linux or Windows.

Dartvel Cloud is not open. Until it is, the macOS step is a runner you configure or a Mac you rent.

An App Store submission needs an Apple Developer account (currently 99 USD a year), whoever owns the hardware.

Is Expo ahead here?

Yes. Expo Go runs a project on an iPhone with no Mac, and EAS Build makes iOS builds on its own machines today. Dartvel Preview does not run on an iPhone yet, and its Cloud is not open.

So why is this better than plain Flutter?

Plain Flutter has the same Apple restriction and none of the rest: no pairing QR code, no backend, no admin, no store submission command, no over-the-air patches, and no build command for Samsung TVs, Apple TV or Sony embedded Linux. The Mac question is the same; everything around it is not.

Start an app
Build target status
Expo for Flutter

ALSO

Dartvel next to the tools people ask about.

Expo for Flutter
Laravel for Flutter
Hasura for Flutter
Ruby on Rails for Flutter
Dartvel vs Bubble
Dartvel vs PocketBase
Dartvel vs Qt
Dartvel vs Power Apps
GitHub
pub.dev
npm
Acknowledgements
Privacy
Terms

FSL-1.1-MIT licensed. Built with Dartvel.

Dartvel is made by

SigmaDev Digital

To the bottom