iOS build errors when you don’t have a Mac
Each page: the exact error, the three-line fix, and why it happens. Written for people and for coding agents.
- expo run:ios on Linux: "iOS apps can only be built on macOS"Fix for Expo's `expo run:ios` / `expo prebuild` failing on Linux, Docker or CI with "iOS apps can only be built on macOS devices": build and run the iOS app on a remote Mac in one command.
- How to build an iOS app on Linux (without a Mac)You cannot compile or sign an iOS app on Linux — Xcode is macOS-only. Here is what actually works: edit on Linux, build/test/run on a remote Mac in one command, $200 free.
- Let Claude Code, Cursor or Codex build and run an iOS app (no Mac needed)Give a coding agent that runs on Linux — Claude Code, Cursor background agents, Codex, Devin, Replit — the ability to compile, test and run iOS apps on a real Mac in one command.
- react-native run-ios on Linux: "run-ios is only supported on macOS"Fix for `npx react-native run-ios` failing on Linux, Docker or CI: build the iOS app of a React Native project on a remote Mac, CocoaPods included.
- Run an iOS Simulator from Docker, GitHub Codespaces or a cloud sandboxThe iOS Simulator cannot run inside Docker, Codespaces, Replit or any Linux container. How to get a live simulator link from those environments in one command.
- xcodebuild: command not foundFix for `xcodebuild: command not found` on Linux, Ubuntu, Docker, GitHub Codespaces or any machine without Xcode: run the build on a remote Mac in one command.
- xcodebuild: error: SDK "iphonesimulator" cannot be locatedFix for `SDK "iphonesimulator" cannot be located` / `unable to find sdk 'iphonesimulator'`: Xcode is not selected or not installed. What to do on a Mac, and what to do if you are not on a Mac.
- xcodebuild: error: Unable to find a device matching the provided destination specifierWhy `Unable to find a device matching the provided destination specifier` happens on GitHub Actions macOS runners and locally, how to fix the destination, and how to avoid the flake entirely.
- xcrun: command not found (and xcrun simctl on Linux)`xcrun: command not found` or `xcrun: error: unable to find utility "simctl"` on Linux, Docker or CI: why it happens and how to run simulators and builds on a remote Mac.