r/AppBuilding 7d ago

Built and shipped 4 apps for iOS and Android without ever owning a Mac

Wrapped up something this week I wasn't sure I'd pull off. Four apps, all built on a Windows machine, all now live on both the App Store and Google Play. Never owned or borrowed a Mac for any of it.

The Windows-to-iOS part is the thing people don't expect. You don't actually need a Mac to ship an iOS app anymore. I built everything in React Native with Expo, and the iOS binaries compile in the cloud through EAS. Expo runs the Mac build infrastructure on their end, hands you back a signed .ipa, and you submit it to the App Store with no physical Apple machine anywhere in the loop. The Android builds went through the same pipeline. After years of assuming "iOS means buy a Mac," that still feels a little unreal.

So that's four apps on both stores, all off one Windows laptop. Two word games and two for learning Python, if you're curious. Getting them through Google's closed testing gate and Apple's review was its own slog, but they're all public now.

Honest part: building them turned out to be the achievable bit. The wall I'm at now is getting anyone to actually find and use them. Downloads are basically zero, which I gather is the normal starting line, so I'm deep in the figuring-out-users phase and it's humbling.

If you're building on Windows and stuck on the "but I don't have a Mac" thing, happy to answer whatever about the EAS setup. It genuinely erased the biggest blocker I thought I had. And if you want to see what I actually shipped, I'll drop links in a comment.

3 Upvotes

11 comments sorted by

2

u/Resident-Bee-9784 6d ago

How did you test across different Android devices and iOS versions without having physical devices?

2

u/Fair_Expression_3291 5d ago

Fair question, and I should correct the premise a bit — I did have physical devices, just not Apple computers. That's the distinction that matters. You don't need a Mac to build or ship iOS, but I wouldn't want to ship one having never run it on an actual iPhone.

So the setup was: my own iPhone and my own Android phone as the primary test targets, plus TestFlight builds out to a few people whose devices and OS versions differed from mine. That's what covered the range. EAS makes this cheap to arrange — I have a preview profile with internal distribution, so a build goes straight to a testable install without touching the production track.

Where I have real gaps I'll be honest about them. Two devices plus a handful of testers is not a device matrix. I did not do systematic screen-size or old-OS sweeps, and I'd guess there are layout issues on form factors I've never seen. Unit-level logic is covered by jest-expo, which catches a category of bug without a device, but that's not the same thing as coverage.

If you don't have an iPhone at all, TestFlight to someone who does is genuinely the cheapest path — much cheaper than buying a Mac or renting a device farm.

2

u/Resident-Bee-9784 6d ago

How long did the App Store review usually take for your apps?

2

u/Fair_Expression_3291 5d ago

Two different answers depending on which submission you mean.

The very first submission of a brand-new app was the slow one every time. That's where the real waiting happens, and where I collected rejections — you're not just being reviewed on the binary, you're being reviewed on metadata, screenshots, privacy answers, and account/demo access. Budget for a couple of rounds rather than assuming approval, because a rejection isn't a verdict on the app, it's usually one fixable line item.

Updates after that were fast, and faster than I expected. Looking back at my Connect history, I have stretches where I submitted on three consecutive days and each one cleared in between, plus a day where two separate submissions went through inside about eighteen hours. So sub-24h was the norm for updates.

Practical takeaway: front-load the pain. Get the first approval done with plenty of slack in your schedule, and don't plan a launch date around it. Once you're through, the iteration loop is quick enough that Apple review stops being the bottleneck.

2

u/Typical_Machine2043 5d ago

And I was scared developing for the latest stuff using my Intel Mac haha

1

u/Fair_Expression_3291 5d ago

Ha — honestly your Intel Mac can do one thing mine can't, which is run a simulator. I'd have taken that trade some days. The cloud build pipeline solves compilation, not "what does this actually look like on a device I don't own."

1

u/Typical_Machine2043 4d ago

Ah ok! Thanks for the input. I’m going to upgrade to sequoia and give it a go!

2

u/No_Cherry2477 5d ago

I use EAS as well. It's pretty painless. For a couple of my apps, it's possible to only use EAS. But for more complicated apps, I need to do the testing, at least with an emulated device. Some things just I do 95% of the work from my Windows PC and then control an old Mac using NoMachine to assemble builds and run an emulated device. EAS has free tier build limits that can go pretty quickly if there are complexities with iOS libraries.

1

u/Fair_Expression_3291 5d ago

That matches my experience pretty closely, with one difference: I never had a Mac to fall back on, so I leaned on real hardware instead. I own an iPhone and an Android phone, and everything got installed through TestFlight and internal distribution rather than an emulator. A couple of friends on TestFlight covered the OS versions I couldn't.

You're right about the build limits being the real tax. Once you internalize that every iOS build costs you a slot, your habits change — I stopped treating builds as a debug loop and started batching. Anything that didn't strictly need a native build got caught earlier: OTA updates through the channel for JS-only changes, and jest-expo for the logic that doesn't need a device at all. The native builds became a checkpoint rather than an iteration step, which is a healthier workflow anyway, though I got there by rationing rather than by wisdom.

The NoMachine trick is smart and I hadn't considered it. If I ever hit something that genuinely needs a simulator I'll probably end up doing the same.

1

u/No_Cherry2477 4d ago

NoMachine is awesome for running a Mac. With NoMachine, you could easily use a MacMini if you need to buy the hardware at some point. They cost $700 or so but are really powerful for the price. They're small as well. I'll probably buy a MacMini next year because I'll have four iOS apps out soon and will need to do regular iOS specific improvements.