# Build an iOS app without a Mac: options and costs

Canonical URL: https://macswarm.com/docs/build-ios-app-without-a-mac/
Last reviewed: 2026-10-26

> Yes, you can build an iOS app from Windows or Linux by sending the build to a Mac elsewhere. Five routes, checked prices and when each fits, agents included.

A selection guide for building iOS apps from Windows or Linux. Which route fits your framework, your signing needs and your workflow, what each costs today, and where Claude Code and Codex fit.

## Can you build an iOS app without a Mac?

Yes. You can build an iOS app from Windows or Linux by sending the build to a Mac you rent or to a hosted build service; your own machine edits the code and starts the build. Xcode runs only on macOS, so a Mac is always somewhere in the chain. For a build job, hosted macOS CI such as GitHub Actions runs `xcodebuild` from a workflow, and Codemagic builds native iOS as well as Flutter and React Native apps; Expo EAS Build covers React Native and Expo. Apple's Xcode Cloud is another build service, but its setup starts in Xcode, so you need Mac access once. For a whole Mac to work on, rent one by the day or the month. Interactive coding agents such as Claude Code and Codex need Mac access for Xcode and the Simulator, which a Macswarm Pod provides. Choose by framework, by where signing happens, and by whether you need a build job or an agent session.

## What are the options?

Five routes, each with a Mac somewhere in it. Vendor prices are from the linked pages, checked 26 Oct 2026, and exclude tax.

| Option | Price | The better choice when |
| --- | --- | --- |
| A Mac mini you own | From $899 (U.S.), per [Apple's Mac mini announcement](https://www.apple.com/newsroom/2026/08/apple-unveils-a-more-powerful-mac-mini-featuring-the-all-new-m6-and-m5-pro/) and the [Apple Store](https://www.apple.com/shop/buy-mac/mac-mini) | You build most days, test on a physical iPhone, or want the Simulator on your desk |
| A rented cloud Mac | [My Remote Mac](https://myremotemac.com/) from $14 a day or $85 a month; [MacRent](https://www.macrent.cloud/) $15 a day or $159 a month, monthly sold out when checked | You need a whole Mac with remote desktop and admin rights for days or months |
| Hosted macOS CI | [GitHub Actions](https://docs.github.com/en/billing/reference/actions-runner-pricing) standard macOS runner $0.062 a minute gross, before plan allowances; [Xcode Cloud](https://developer.apple.com/xcode-cloud/) 25 compute hours a month with the developer membership, 100 hours for $49.99 a month | Builds, tests and TestFlight uploads run from a workflow on every push |
| Expo EAS Build or Codemagic | [EAS](https://expo.dev/pricing) Free: 15 iOS builds a month; Starter $19 a month plus usage. [Codemagic](https://codemagic.io/pricing/): 500 free macOS M2 minutes a month for individuals; M2 usage beyond the allowance is $0.095 a minute | You need an iOS build, not a Mac to work on; EAS for React Native and Expo, Codemagic for those, Flutter or native iOS |
| A Macswarm Pod | Free 3 Pod-hours once, no card; Pro $99 a month for 300 Pod-hours; Team $399 for 1,500; Enterprise from $3,000 a month with reserved Macs in the EU or US, contact us ([pricing](https://macswarm.com/pricing/)) | Claude Code or Codex must build, run and test the app in a Simulator from a cloud session |

Shipping through TestFlight or the App Store also needs the [Apple Developer Program](https://developer.apple.com/programs/whats-included/), 99 USD per membership year, whichever route builds the app.

### A Mac mini you own

The simplest answer if you build often. Xcode, the Simulator and any agent run locally, and a physical iPhone can be plugged in for device tests. The $899 purchase price is about 10.6 payments of $85 at My Remote Mac, before power, maintenance, tax or resale value, and the hardware and included services differ; [Mac mini vs a cloud Mac](https://macswarm.com/compare/mac-mini-vs-cloud-mac/) works through ownership costs. You maintain it yourself: macOS updates, Xcode updates, Simulator runtimes. Claude Code and Codex run on it as on any Mac, and [XcodeBuildMCP](https://macswarm.com/docs/xcodebuildmcp-on-a-cloud-mac/) gives them Simulator control.

**Better choice when** you build daily, test on devices, or plan to keep the machine for years.

### A rented cloud Mac by the day or month

A dedicated Mac mini in a data center that you reach over remote desktop or SSH, with admin rights. My Remote Mac describes a physical Mac mini that stops after 24 hours by default on its day plan; MacRent describes bare metal with full admin, remote desktop and SSH. You install and update Xcode yourself, and a monthly plan bills whether the Mac is busy or idle. [Mac in the cloud pricing](https://macswarm.com/compare/cloud-mac-pricing/) compares more rental vendors and billing units.

**Better choice when** you want a Mac you log into, keep files on between sessions, or run around the clock.

### Hosted macOS CI runners for batch builds

You describe the steps in a workflow file, and a hosted Mac builds, tests, signs and uploads on every push; there is no Mac to log into. GitHub Actions bills its standard macOS runner at $0.062 a minute, before any minutes your plan includes. Xcode Cloud includes 25 compute hours a month with the developer membership, but Apple's [getting-started guide](https://developer.apple.com/documentation/xcode/getting-started-with-xcode-cloud) begins with opening the project in Xcode, so plan on Mac access for the first setup. [macOS CI runner alternatives and prices compared](https://macswarm.com/compare/macos-ci-runners-pricing/) covers the other runner vendors.

**Better choice when** you want the same build on every push and TestFlight delivery without a person or agent in the loop.

### Expo EAS Build or Codemagic

For React Native and Expo apps, EAS Build sends iOS builds to macOS runners in Expo's own macOS cloud ([EAS Build](https://docs.expo.dev/build/introduction/)), so the machine that starts the build does not have to be a Mac. Codemagic runs Flutter, React Native and native iOS builds on hosted Mac minis billed by the minute. Both suit teams that need an iOS binary rather than a Mac session.

**Better choice when** your stack is React Native, Expo or Flutter, or a native app needs a build service with a free monthly allowance.

### A Pod for an agent in claude.ai, Codex or on a Linux box

Coding agents meet the same wall. An Anthropic-hosted Claude Code session runs in an Ubuntu VM ([Configure cloud environments](https://code.claude.com/docs/en/cloud-environments)), and OpenAI's [cloud environments](https://learn.chatgpt.com/docs/environments/cloud-environments) page describes each Codex cloud task running in a VM without listing macOS (both checked 26 Oct 2026). Macswarm is serverless Mac infrastructure for Claude Code and Codex. Free, Pro and Team run Pods on shared Apple silicon; Enterprise reserves Macs. A Pod gives one developer's sessions a macOS virtual machine with the Latest Xcode, iOS runtimes, pre-booted Simulators and XcodeBuildMCP. Your own machine can stay Linux or Windows. How the session reaches the Pod depends on the agent and plan:

- **Claude Team or Enterprise:** select the connected self-hosted environment in claude.ai, Claude Desktop or Slack. Anthropic offers self-hosted environments to Team and Enterprise plans in public beta ([Self-hosted environments](https://code.claude.com/docs/en/self-hosted-environments), checked 26 Oct 2026).
- **Claude Pro or Max:** start the Pod on Macswarm Free or Pro and sign in to Claude Code inside it. The dashboard steps are not documented yet; write to [info@macswarm.com](mailto:info@macswarm.com).
- **Codex:** use the environment connected through the OpenAI Agents API webhook ([Self-hosted sandboxes](https://developers.openai.com/api/docs/guides/agents-api/environments/self-hosted)), which needs an OpenAI account with API access.

[Run Claude Code and Codex on a hosted cloud Mac](https://macswarm.com/docs/run-claude-code-on-a-cloud-mac/) has the full connection steps. On the Pod, the agent builds with `xcodebuild`, runs the app in a Simulator, taps through it and pushes a branch with screenshots on the pull request; your CI or Xcode Cloud then builds that branch for TestFlight as usual. Two to three active agents per Pod are guaranteed, sharing two build slots ([Limits and queues](https://macswarm.com/docs/limits-and-queues/)), and Pro and Team cap monthly spend at a limit you set. There is no SSH. Pod-local data is destroyed with the Pod, ten minutes after the last session, and those ten minutes are billed per second; the logs and screenshots the agent produces are kept for 30 days in the region you chose ([privacy policy](https://macswarm.com/legal/privacy/#the-service)).

**Better choice when** an agent should see the app run in a Simulator ([the testing loop](https://macswarm.com/ios-simulator-for-coding-agents/)), several agents work in parallel, or you want an EU or US region. A Pod is not a Mac to log into or keep running all month.

## Why can't Xcode run on Linux or Windows?

Because Apple licenses it only for Apple hardware running macOS. Apple's [Xcode and Apple SDKs Agreement](https://www.apple.com/legal/sla/docs/xcode.pdf) says use of the software is "authorized only for execution on an Apple-branded product running macOS", and section 2J of the [macOS Tahoe 26 license](https://www.apple.com/legal/sla/docs/macOSTahoe.pdf) rules out installing macOS on any non-Apple-branded computer (both checked 26 Oct 2026). A macOS virtual machine on a PC or a Linux server falls outside both. Apple's [Xcode system requirements](https://developer.apple.com/xcode/system-requirements/) list a minimum macOS version for every Xcode release.

Linux and Windows still carry much of the work. Swift is cross-platform, and [Swift.org](https://www.swift.org/about/) explains that Apple frameworks such as UIKit depend on the Objective-C runtime, which other platforms such as Linux do not have. React Native projects can be written on Windows or Linux, and React Native's [environment guide](https://reactnative.dev/docs/set-up-your-environment) notes that building an iOS project with native code requires a Mac. So write the code anywhere; compiling, running the Simulator and signing happen on a Mac. [Why cloud agents need a Mac to build iOS](https://macswarm.com/blog/why-cloud-coding-agents-cannot-build-ios/) walks through each build step.

## What else do people ask?

### Can I run Xcode in a virtual machine on Windows or Linux?

Not within Apple's license. The Xcode and Apple SDKs Agreement authorizes execution only on an Apple-branded product running macOS, and the macOS license rules out installing macOS on any non-Apple-branded computer. The macOS license does allow up to two additional macOS virtual machines on an Apple-branded computer that already runs macOS, for purposes that include software development and testing.

### Can Claude Code build an iOS app without a Mac?

Claude Code can write the code on any machine, but building and running the app needs a Mac host, and Anthropic-hosted sessions run in an Ubuntu VM. Run Claude Code on a Mac you own or rent, or use a Macswarm Pod. A Claude Team or Enterprise organization routes sessions to a Pod through a self-hosted environment, which Anthropic offers in public beta. A Pro or Max account starts a Pod on Macswarm Free or Pro and signs in to Claude Code inside it; those dashboard steps are not documented yet, so write to [info@macswarm.com](mailto:info@macswarm.com).

### Can Codex build an iOS app without a Mac?

The same rule applies: `xcodebuild` and the iOS Simulator need macOS. Run the Codex CLI on a Mac you own or rent, or connect a Macswarm Pod as the macOS sandbox through the OpenAI Agents API webhook, which needs an OpenAI account with API access.

### Do I still need an Apple Developer account?

To ship through TestFlight or the App Store, yes. The Apple Developer Program costs 99 USD per membership year and includes 25 Xcode Cloud compute hours a month. Every option on this page gets the app built; none of them replaces the membership.

### What is the cheapest way to build an iOS app without a Mac?

It depends on how often you build. For an individual, Codemagic includes 500 macOS M2 build minutes a month and supports native iOS as well as cross-platform apps. EAS Free includes 15 iOS builds a month. Xcode Cloud includes 25 compute hours a month with Apple Developer Program membership, but its initial setup needs Xcode access. GitHub's $0.062 a minute is the gross rate for its standard macOS runner, before any minutes your plan includes. All checked 26 Oct 2026. For daily work, weigh those against a Mac mini from $899.
