
Apple does not ship Xcode for Windows. The practical path is to run Xcode on a real Mac and reach it from your Windows machine. This guide picks the right Figment plan for that job, generates an ED25519 key in Windows Terminal, writes a reusable ~/.ssh/config block, and ends with your first successful xcodebuild from PowerShell.
Xcode links directly into macOS frameworks—Security, CoreFoundation, the iOS Simulator process, and the Clang/LLVM toolchain bundled with the macOS SDKs. None of those are shipped for Windows, and Apple's software license ties macOS to Apple hardware, so a Windows VM running macOS is not a supported path. The only supported setup is Xcode on macOS, reached remotely.
Xcode version drives your hardware choice. Apple's porting guide tells developers who still need Intel support to use Xcode 26 or earlier on Intel-based processors; Xcode 27 targets Apple silicon for the IDE host. Check your exact pair in the Xcode release notes before you request a configuration, because different Xcode point releases ship with different minimum macOS versions.
Figment publishes two entry points plus managed tiers on /mac-hosting:
| Fit | Figment plan | Monthly price |
|---|---|---|
| Intel macOS toolchain, command-line builds, outbound CI agents | Virtual Intel macOS (2 vCPU, 8 GiB RAM, 80 GiB) | $29 |
| Apple silicon Xcode, ARM execution, visionOS, GPU work | M-series Mac (request) | From $95 |
| One M-series Mac with CI setup, backups, monitoring, 30 min support | Managed Build Mac | $249 |
| Two M-series Macs, two CI runners, team setup, backups, monitoring, 1 hr support | Managed Mac Team | $999 |
The $29 plan is a virtual Intel macOS environment. It runs macOS and the compatible Intel Xcode line (Xcode 26 or earlier per Apple's porting guide), so it compiles and signs supported Intel targets fine. It has no GPU acceleration and no audio, and today its access path is the browser-console desktop terminal plus outbound CI agents—inbound public SSH into the $29 VM is not currently exposed. If the SSH-from-Windows workflow in this guide is the point of the setup, request an M-series Mac and confirm SSH access, the installed macOS image, and the exact Xcode version in your quote. The $95 M-series price is the entry point; the specific chip, RAM, and disk are agreed in the quote, so do not assume it matches any named competitor configuration.
For a point of reference while you choose, CloudMac lists an M4/16 GB/256 GB Mac at $99.99/month, and its homepage lists a $999/year reservation on the same hardware ($83.25 effective monthly). That annual rate is lower than 12 × $95; Figment's advantage is on the $29 Intel entry and on the managed CI inclusions above, not on an M4 sticker match. MacStadium's pricing page publishes M2.S at $109, M4.S at $149, and M4.M at $249 with 99.99% uptime and support included—again, compare the managed CI work, not the hardware alone.
Request your configuration at /mac-hosting/start.
Windows 10 and later include an OpenSSH client. If ssh-keygen is missing, enable it at Settings → Apps → Optional features → Add a feature → OpenSSH Client. In Windows Terminal (PowerShell):
# Generate the key; accept the default path and set a passphrase when prompted
ssh-keygen -t ed25519 -C "windows-build-$env:COMPUTERNAME"
# Put the public key on the clipboard
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | Set-Clipboard
Once your M-series Mac is provisioned with SSH enabled (confirm in the quote), make one password-authenticated connection to install the public key:
# Replace macuser and <mac-host> with the values from your welcome email
ssh macuser@<mac-host> "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
# Paste the public key line, press Enter, then Ctrl+Z then Enter to end stdin
If your Windows OpenSSH build includes it, ssh-copy-id macuser@<mac-host> does the same thing in one step.
Open C:\Users\<YourName>\.ssh\config in any editor and add:
Host figment-mac
HostName <mac-host-or-ip>
User macuser
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 5
AddKeysToAgent yes
Test it with ssh figment-mac. You should land at the macOS shell without a password prompt. From there, ssh figment-mac <command> runs any one-liner non-interactively, which is what the checklist below depends on.
# Prints the installed Xcode version and the active SDK
ssh figment-mac 'xcodebuild -version && xcrun --show-sdk-path'
If xcodebuild prints "command not found", Xcode.app itself is not installed yet—open the Mac's desktop (VNC or console), install Xcode from the App Store or run xcode-select --install for command-line tools only, then run the check again.
macOS has a built-in Screen Sharing (VNC) server. Enable it at System Settings → General → Sharing → Screen Sharing and connect from Windows with any VNC client at <mac-host>:5900. Reach for VNC when you need Interface Builder, Instruments, or a storyboard preview. For scripted builds, unit tests, and simulator CLI runs, SSH alone is lower latency and scriptable.
Substitute your own repo, scheme, and simulator name. The set -euo pipefail prefix ensures a failed build returns a non-zero exit code to your Windows shell instead of being silently tailed as success.
[ ] 1. Enable OpenSSH Client in Windows optional features
[ ] 2. Open Windows Terminal (PowerShell)
[ ] 3. ssh-keygen -t ed25519 -C "windows-build-$env:COMPUTERNAME"
[ ] 4. Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
[ ] 5. One password SSH; append the public key to ~/.ssh/authorized_keys
[ ] 6. Add the Host figment-mac block to C:\Users\<Name>\.ssh\config
[ ] 7. ssh figment-mac (passwordless login works)
[ ] 8. ssh figment-mac 'xcodebuild -version && xcrun --show-sdk-path'
[ ] 9. ssh figment-mac 'git clone <your-repo-url> ~/MyProject'
[ ] 10. First build (adapt scheme and destination to your project):
ssh figment-mac 'set -euo pipefail; cd ~/MyProject && \
xcodebuild -scheme <YourScheme> \
-destination "platform=iOS Simulator,name=iPhone 16" \
-configuration Debug build'
Treat the xcodebuild line as an unexecuted example; the scheme name and the available simulator runtime depend on the project and installed Xcode on your rented Mac. Confirm both with xcodebuild -list and xcrun simctl list devices before you wire the command into a CI job.
Go with the $29 virtual Intel macOS plan when your target is the Intel-supported Xcode line (Xcode 26 or earlier) and your workflow is command-line or outbound-agent based—GitHub Actions self-hosted runner, GitLab runner, or Buildkite agent reaching out to your CI service. Move to M-series from $95 when you need Apple silicon, the current Xcode line, ARM-specific behavior, or visionOS; confirm chip, RAM, disk and SSH access in the quote. Choose Managed Build Mac at $249 or Managed Mac Team at $999 when you want Figment to set up CI, run backups, monitor the box, and hold support time (30 minutes or one hour per month respectively).
Start a request at /mac-hosting/start.
Related guides: