nomac

Flutter IPA without a Mac

flutter build ipa — on hardware you don't have to own.

Route
1 pubspec.yaml
2 flutter build ipa
3 TestFlight

'flutter build ipa' needs macOS, Xcode, and a signing identity. Without a Mac you're stuck exporting an unsigned build nobody can install — or paying for one.

nomac runs the full Flutter iOS pipeline on real Apple hardware: pub get, pod install, archive, sign with your App Store Connect key, export, and TestFlight upload. Cached rebuilds target under 15 minutes.

From git push to TestFlight.

  1. Connect your repo

    Sign in with GitHub and point nomac at your Flutter, React Native, or Xcode repository.

    git push origin main
  2. nomac builds on real Macs

    Your code builds and signs on Apple hardware with your App Store Connect key — you watch the logs live.

    xcodebuild archive · sign
  3. TestFlight, done

    The signed IPA uploads to TestFlight automatically. You get an email; your testers get a build.

    → TestFlight

What you get

Auto-detects your stack

pubspec.yaml → Flutter. package.json + ios/ → React Native. A root .xcodeproj → bare Xcode. Zero config unless you want it.

Live build logs

Stream xcodebuild output in your browser while the build runs — no guessing what broke.

Cached, fast rebuilds

Per-project pub, node_modules, and DerivedData caches. Cached rebuilds target under 15 minutes.

Your keys stay yours

Sign with your own App Store Connect API key — encrypted at rest, decrypted only into an ephemeral keychain per build. nomac never stores p12s.

Artifacts, signed & temporary

IPAs and dSYMs land as signed download links, expiring after 7 days. Nothing lives forever.

Notified, not nagged

Email or Slack when a build finishes or fails. Watch it live if you'd rather.

Questions

Does nomac run 'flutter build ipa' or xcodebuild?

The full pipeline: pub get, pod install, then xcodebuild archive and export on your Runner.xcworkspace — the same steps you'd run on a Mac.

How do I sign the IPA without Apple certificates on my machine?

nomac uses your App Store Connect API key with -allowProvisioningUpdates, so profiles and certificates are fetched per build into an ephemeral keychain. Nothing is stored on disk between builds.

Can I keep developing on Windows or Linux?

Yes. Everything except the iOS build stays local; GitHub is the hand-off. Android builds continue on your machine as usual.

Flutter IPA without a Mac — starting today.

Trusted beta — free builds while we harden the service.

Join the beta