Figment.so
Mac hostingWebsite hostingGuidesHow to usePricing

Run Xcode from Windows Using a Remote Mac

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.

Why Xcode Has No Windows Installer

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.

Choosing a Plan: Virtual Intel macOS at $29 vs M-series From $95

Figment publishes two entry points plus managed tiers on /mac-hosting:

FitFigment planMonthly price
Intel macOS toolchain, command-line builds, outbound CI agentsVirtual Intel macOS (2 vCPU, 8 GiB RAM, 80 GiB)$29
Apple silicon Xcode, ARM execution, visionOS, GPU workM-series Mac (request)From $95
One M-series Mac with CI setup, backups, monitoring, 30 min supportManaged Build Mac$249
Two M-series Macs, two CI runners, team setup, backups, monitoring, 1 hr supportManaged 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.

Generate an ED25519 Key Pair on Windows

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.

Write a Reusable ~/.ssh/config Block

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.

Verify the Toolchain Before You Build

# 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.

GUI Access: VNC When You Need Interface Builder

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.

10-Step Windows Terminal Checklist: Your First Remote Build

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.

Pick the Plan That Matches Your Toolchain

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:


Subscribe for Figma design and website publishing guides.


Figment.so

Contact

Twitter

Website pricing

Compute index

About

Privacy

Terms