ios-builder: Build iOS Apps Without a Mac (Kinda)
The Problem
iOS development without a Mac is a massive pain. Apple’s walled garden means you're stuck with their hardware for building and signing apps. That’s great for Apple, not so much for everyone else. If you're on Windows, Linux, or even just trying to automate builds in CI, you're out of luck—unless you enjoy renting overpriced macOS VMs or setting up a hackintosh. Spoiler alert: no one does.
What This Does
ios-builder is a CLI tool that lets you offload iOS app builds to GitHub Actions, so you don’t need a Mac sitting on your desk to compile anything. It supports native iOS apps, React Native, Flutter, and even Cordova/Ionic. The magic happens in .github/workflows/ios-build.yml, which runs the actual build process on GitHub’s macOS runners. The cmd/builder folder contains core commands like builder ios build, which sets up the workflow, triggers the build, and downloads the resulting .ipa. The internal/build and internal/github directories handle the heavy lifting for talking to GitHub APIs and coordinating builds.
Beyond builds, there’s some nifty developer tooling. The builder dev commands use MobAI to enable hot-reload development for Flutter and React Native directly on physical iOS devices. No Mac required, just a MobAI instance running on your local network. Check out internal/dev for the code handling the file watching and device syncing.
Real-World Use
Say you’re working on a React Native app on a Windows PC. First, you’d run builder auth github to authenticate. Then, in your project folder, builder init will generate the necessary GitHub Actions workflow, configure your project, and even commit/push the changes for you. Want to build your app? Just run builder ios build. For development, run builder dev rn to hook up to your iOS device via MobAI and start hot-reloading your app.
Example workflow:
Boom, now you’ve got an .ipa ready to test or distribute, and you didn’t touch a Mac once.
The Bottom Line
ios-builder scratches a very specific itch: building iOS apps without Apple hardware. It’s perfect for teams stuck on Windows/Linux or anyone wanting to automate builds via GitHub Actions. That said, it’s not for the faint of heart—setup is straightforward, but the tool leans heavily on GitHub Actions and MobAI, so if either of those breaks, you’re in for some troubleshooting. For small projects, this might be overkill, but for cross-platform devs or CI-heavy workflows, it’s a lifesaver.