There's no way around it — iOS builds need macOS.
Apple requires that iOS, iPadOS, watchOS, and macOS apps are built using Xcode on a Mac. There's no Linux cross-compiler, no Windows workaround. Your CI/CD pipeline needs a real Mac at the end of it.
For many teams, that means one of these compromises:
- A Mac under someone's desk. It works until it doesn't — power cuts, macOS updates, disk full, and nobody notices until the build fails at 2am.
- A Mac mini at home. Better, but you're still responsible for uptime, monitoring, and connectivity.
- GitHub Actions macOS runners. Expensive at scale (£0.08/min for Apple silicon), and you're sharing resources with other builds.
- AWS EC2 Mac. Powerful but complex — 24-hour minimum billing, Dedicated Host management, significant DevOps overhead.
SSH in, set up your pipeline, forget about the hardware.
Every Halfpenny Mac comes with full root access on a dedicated Apple silicon Mac mini. Install Xcode, set up fastlane, configure your CI runner — exactly as you would on any Mac, because it is a real Mac.
Common setups our customers run:
- GitHub Actions self-hosted runner — point your workflows at your Halfpenny Mac and run builds on dedicated hardware instead of shared runners
- GitLab CI runner — register your Mac as a GitLab runner for macOS builds
- Fastlane + match — code signing, screenshots, App Store submissions, all automated
- Xcode Cloud alternative — more control, no Apple lock-in, and you can install whatever you need
- React Native and Flutter builds — the iOS side of your cross-platform app
Tailscale gives you secure SSH access from anywhere. No port forwarding, no VPN setup, no public IP.
Ready to get started?
Sign up and we'll have your Mac mini provisioned and online within 24 hours. No contracts, cancel anytime.