A year ago, I'd never shipped a mobile app. Today I have four live on the App Store — and I built and submitted every one of them from a Windows PC, without ever owning or opening a Mac.
If you've done any iOS work, you know the received wisdom: you need a Mac. Xcode is Mac-only, and Xcode is how iOS apps get built, signed, and submitted. For years that was a hard wall for anyone on Windows or Linux.
It isn't anymore. Here's exactly how the pipeline works, the objections people always raise, and the honest trade-offs — so if you're a Windows dev sitting on an iOS idea, you know it's actually within reach.
The one idea that makes it possible: the Mac lives in the cloud
The trick isn't a hack or a VM. It's that the Mac never has to be yours.
I build with React Native + Expo, and Expo's EAS Build service runs the compile step for you on a real macOS machine in their cloud. You trigger it with one command from PowerShell:
eas build --platform ios --profile production
EAS spins up a macOS worker, installs your dependencies, compiles the native iOS app, handles code signing, and hands you back a finished .ipa. Your machine never has to be a Mac — it just has to run Node and the EAS CLI.
Submitting is the same story:
eas submit --platform ios --profile production
That uploads the build straight to App Store Connect. Everything after that — screenshots, metadata, releasing — happens on the App Store Connect website, which is just a browser tab.
"But signing and certificates without a Mac?"
This is the objection I hear most, and it used to be the genuine pain of iOS. EAS handles it end to end.
On your first build, EAS generates your distribution certificate and provisioning profile and stores them in your Expo account. You never manually wrangle signing files or the Keychain. If you're an advanced user who wants to bring your own credentials, you can — but letting EAS manage them is the whole point, and it just works.
The only thing Apple actually requires from you is a paid Apple Developer account ($99/year). No hardware. That account is the one non-negotiable cost.
"How do you test and debug with no simulator?"
You use a real device instead — which is arguably better anyway.
- During development: I run an Expo dev build on my own iPhone with hot reload over Wi-Fi. Save a file on the PC, see the change on the phone.
- Release candidates: ship through TestFlight, the same way any iOS team ships betas.
And here's the part people forget: the iOS Simulator can't properly test in-app purchases or push notifications anyway — you need a real device for those. So building against a physical device from day one isn't a compromise; it's how you'd want to test the things that matter regardless.
The honest trade-offs
It's not magic, and I won't pretend it is. Two real downsides:
- Cloud builds are slower than local. You queue a build and wait, typically 10–20 minutes, so you learn to batch changes instead of rebuilding constantly. (You can run builds locally later if you outgrow the cloud, but for most solo work the cloud is fine.)
- You depend on their build infrastructure. If EAS has an outage, you wait. In practice that's been rare for me, but it's a real dependency you don't have with a local Xcode setup.
For a solo developer with no Mac, those trade-offs are a no-brainer. I'd rather wait fifteen minutes for a build than buy a Mac and learn Xcode to ship a side project.
Why this matters
The "you need a Mac" wall keeps a lot of capable Windows and Linux developers from ever trying iOS. It shouldn't. The toolchain caught up. If you can write React Native, you can ship to the App Store from the machine you already own.
I used this exact pipeline to build CodeAscent, a small studio of apps built around making learning feel like play — two that teach Python, and two fast bilingual word games. Four apps, one Windows PC, zero Macs.
If you're on Windows and you've been telling yourself iOS is off-limits: it isn't. Happy to answer questions in the comments — the certificate and TestFlight steps trip people up the most, and I've been through all of them.
Top comments (0)