Windows 멀티 모니터에서 코딩하고 iOS 빌드는 원격 Mac에서 실행

Windows만으로 iOS 개발이 정말 될까요? 2026년, 국내 .NET·게임·엔터프라이즈 팀에서 이 질문이 자주 나옵니다. 곁들여지는 말이 「이제 Mac 안 사도 되지 않나?」 입니다. 평소엔 Windows 11 데스크톱만 쓰다가 분기마다 iOS 패치나 외주를 맡는 팀이라면, 궁금한 건 macOS가 편한지가 아니라 Windows를 메인 머신으로 끝까지 갈 수 있는지 일 겁니다.

Windows 11 + Ryzen 7 / 32GB 주력 PC에서 실제 저장소 3개(네이티브 SwiftUI, React Native 0.76, Flutter 3.24)로 clone부터 TestFlight까지 돌려봤습니다. Apple 툴체인은 서울 리전 전용 M4 Mac mini(오피스도 서울, SSH RTT 약 12ms, Xcode 16.2)가 담당했습니다. 결론부터: 일상 코딩은 Windows에 100% 두고, 서명·스토어 제출은 macOS 필수——다만 그 Mac이 책상 위에 있을 필요는 없습니다. 실측 시간, 역할 분담표, 복사 가능한 명령, 그래도 Mac을 사야 하는 경우를 정리했습니다. 역할 나누기는 Windows/Linux 주력 + 원격 Mac 빌드 섬 가이드를 참고하세요.

한 줄 요약: 「독립」≠ Windows에서 Xcode 실행. 「독립」= 일상 데스크는 Windows, Apple 체인은 원격 노드나 CI에 맡김.

「독립 개발」이란 무엇인가

「Windows로 iOS 개발」이라는 말에 서로 다른 주장이 섞여 있습니다. 구분하지 않으면 「Mac 필수」와 「Mac 불필요」 극단으로 갑니다.

  • 주장 A: Windows에서 코드 작성·Git·리뷰——가능하며, 크로스플랫폼 팀의 일상입니다.
  • 주장 B: Windows에서 iOS .ipa 로컬 빌드, Simulator, Archive——Apple이 제공하지 않습니다. WSL2, Docker, VM은 지원되는 프로덕션 경로가 아닙니다.
  • 주장 C: 책상에 Mac 없이 iOS를 안정적으로 배포——원격 전용 Mac, EAS Build, 셀프호스트 Runner로 주장 B를 데이터센터로 옮깁니다.

이 글의 「독립」은 A + C입니다. 손과 눈은 Windows, Apple 툴체인은 다른 곳에서.「Windows용 Xcode」 미신 정리와 같은 맥락——검색 결과의 설치 패키지는 대부분 오해를 부르는 SEO입니다.

테스트 환경과 세 가지 스택

로컬 PC와 원격 노드

Windows: Windows 11 23H2, VS Code 1.92 + Remote-SSH, Git 2.45, Node 20 LTS(RN), Flutter 3.24. 원격 Mac: 전용 M4 Mac mini 16GB / 256GB, macOS 15.4, Xcode 16.2, 서울 노드(오피스 서울, SSH RTT 약 12ms).

경로 1: 네이티브 SwiftUI

Swift 편집은 Windows. xcodebuild, SwiftUI 프리뷰, Simulator는 모두 원격 Mac SSH. 최초 1회 VNC로 인증서 신뢰·키체인 승인 후 헤드리스 빌드로 충분했습니다.

경로 2: React Native 0.76

Windows에서 npx react-native start로 Metro 핫 리로드. iOS 실기기 디버그를 원격으로 USB 포워딩하는 건 번거로워, Android 에뮬레이터 + 릴리스 전 원격 Simulator 확인이 현실적이었습니다. 릴리스는 원격 Mac에서 pod install && xcodebuild archive. 빌드 섬 가이드와 같은 패턴입니다.

경로 3: Flutter 3.24

Windows에서 flutter run -d chrome과 Android 에뮬레이터로 UI 반복의 90% 커버. flutter build ipa는 macOS 필수. 캐시 워밍 후 원격 Mac 전체 빌드 약 6–9분.

역할 분담: Windows vs Mac

단계 Windows만 (macOS 없음) Windows 주력 + 원격 Mac 로컬 MacBook 풀셋
코딩 / Git✅ Windows✅ macOS
JS / 크로스플랫폼 핫 리로드✅ Android / Web✅ Windows + 원격 Simulator
Swift 로컬 컴파일❌ → 원격 SSH
Archive / 서명✅ 원격 Mac
TestFlight 업로드✅ 원격 fastlane
데스크톱 학습 비용낮음낮음 (Mac은 가전 취급)macOS 미숙 시 높음
하드웨어 일시 비용Mac 구매 없음Mac 없음 + 렌탈MacBook / Mac mini 전액

주당 Apple 빌드 시간이 20% 미만이고 Windows에 이미 익숙하다면 원격 Mac 열이 더 현실적입니다. 매일 Simulator·SwiftUI 프리뷰에 매달린다면 로컬 Mac의 시간 절약이 커집니다——6절 참고.

재현 워크플로: push부터 TestFlight까지

Windows에서 트리거하고 원격 M4 Mac mini에서 끝낸 최소 릴리스 경로(네이티브/RN; Flutter는 archive를 flutter build ipa로 대체).

Step 1: Windows에서 커밋

git add . && git commit -m "release: 1.4.0" && git push origin main

Step 2: 원격 Mac SSH, 코드 pull

ssh macbuild@your-remote-mac.example
cd ~/repos/MyApp && git pull origin main
pod install --repo-update   # RN / CocoaPods 프로젝트

Step 3: Archive 및 export

xcodebuild -workspace MyApp.xcworkspace -scheme MyApp \
  -configuration Release -archivePath build/MyApp.xcarchive archive

xcodebuild -exportArchive -archivePath build/MyApp.xcarchive \
  -exportPath build/export -exportOptionsPlist ExportOptions.plist

Step 4: TestFlight 업로드 (fastlane 선택)

xcrun altool --upload-app -f build/export/MyApp.ipa \
  -t ios -u "$APPLE_ID" -p "@keychain:AC_PASSWORD"

Windows에서는 VS Code와 SSH 로그 터미널 두 개면 됩니다. 서명·CI·심사 거절 후 재제출 등 전체 공정은 App Store 심사 Xcode CI/CD 공정을 보세요. 상시 CI는 Step 2–4를 GitHub Actions 셀프호스트 Runner에 맡기고 Windows 팀원은 merge만.

실측 시간 (2026년 6월)

저장소 규모: SwiftUI 약 4.2만 줄 / 38 타깃, RN 약 12만 줄 JS + 네이티브 모듈 6, Flutter 약 2.8만 줄 Dart. 원격 Mac M4 16GB, DerivedData·Pods 캐시 예열. 1회 측정 기준, 대략적인 수치입니다.

단계 네이티브 SwiftUI React Native Flutter
git pull (서울 노드)3s4s3s
의존성 설치 (캐시 히트)pod 2m 40s
의존성 설치 (콜드)pod 11m 20spub get 45s
Release Archive / ipa4m 55s6m 10s7m 30s
TestFlight 업로드2m 15s2m 20s2m 10s
합계 (웜 캐시)~7분~11분~10분

Windows에서 사람이 기다리는 건 주로 SSH 로그 확인——커피 한 잔 해도 됩니다. 병목은 원격 컴파일·링크이지 Ryzen 성능이 아닙니다. GitHub 호스트 macOS runner는 대기가 빌드보다 길 때가 많아, 2026 iOS 파이프라인 신판에서 전용 빌드 섬을 강조하는 이유입니다.

경계: 여전히 Mac이 필요한 경우

다음 상황에서는 「Mac 안 사도 된다」가 성립하지 않습니다.

  • SwiftUI / UIKit 프리뷰 집중: 하루 수십 번 레이아웃 수정, Xcode Canvas·멀티 디바이스 Simulator——VNC 지연이 스트레스, 로컬 Mac이 낫습니다.
  • Instruments / 성능 튜닝: 메모리 누수, 끊김, Metal 디버깅은 저지연 attach가 필요——원격도 되지만 한 단계 아래 체감.
  • 오프라인 / 보안: 소스가 사외·클라우드 Mac으로 나갈 수 없음——온프레미 Mac 팜이나 자체 구매만.
  • 7×24 대량 CI: 하루 수백 회 풀 빌드——장기 렌탈 TCO가 자체 Mac mini 클러스터를 넘을 수 있음. 일 단가만 보지 말고 TCO 표 필요.
반례 정리: 「독립」은 부업·크로스플랫폼·주간 릴리스에 맞음. 「Mac 구매」는 Apple 일스택·Simulator 하루 2시간 이상.

흔한 절충: 노트북은 Windows 유지, 릴리스 주에 원격 M4 대여, 또는 사내 Mac mini를 서버실 빌드 노드로.요금 플랜에서 실시간 가격 확인, 일 단위 시험으로 오피스 RTT부터 재세요.

자주 묻는 질문

Windows만으로 iOS 개발을 완전히 할 수 있고 Mac은 전혀 필요 없나요?

아닙니다. xcodebuild, codesign, notarytool, TestFlight 업로드 등 Apple 툴체인은 macOS에서 실행해야 합니다. 다만 「독립」은 일상 데스크가 Windows이고 macOS가 원격 전용 노드나 CI로 존재하며 책상에 MacBook을 둘 필요가 없다는 뜻으로 쓸 수 있습니다.

WSL2나 Docker에 Xcode를 설치할 수 있나요?

없습니다. Xcode와 iOS SDK는 macOS 전용입니다. WSL2와 Linux 컨테이너는 지원되는 프로덕션 경로가 아닙니다. 해킨토시 VM은 라이선스 위반이며 기업 보안 심사를 통과하지 못합니다.

Mac 없이 합법적으로 iOS를 배포하는 최저 비용 방법은?

Windows에서 코드 작성 + 릴리스 주에 전용 원격 M4 Mac mini 대여(SSH로 xcodebuild / fastlane), 또는 RN/Expo는 EAS Build 클라우드 macOS. 가끔 빌드는 GitHub 호스트 macOS runner도 되지만 인증서·캐시 영속성이 약합니다.

Windows VS Code에서 Swift를 쓸 수 있나요?

편집과 Git에는 가능합니다. iOS 타깃 로컬 컴파일은 불가. Remote-SSH로 Mac에 연결해 swift build / xcodebuild를 실행하거나 CI에서 원격 빌드를 트리거하세요.

React Native / Flutter를 Windows에서 iOS로 배포하려면?

RN: eas build --platform ios 또는 원격 Mac에서 pod install + xcodebuild 워크플로. Flutter: Codemagic / GitHub Actions macOS job, 또는 원격 Mac SSH로 flutter build ipa.

iOS 시뮬레이터가 Windows에서 돌아가나요?

네이티브로는 안 됩니다. 원격 Mac VNC로 Simulator를 쓰거나, 실기기 + Windows Metro/React Native 핫 리로드로 JS 레이어 디버그. 네이티브 SwiftUI 프리뷰는 macOS 필요.

원격 Mac vs Mac mini 구매, 어떻게 고르나요?

7×24 고정 부하·자체 운영이면 구매. 릴리스 스프린트·탄력 CI·일상 데스크를 Windows로 고집하는 팀에는 전용 원격 M4——먼저 일 단위로 시험 후 월렌탈 결정.

「Windows용 Xcode」 설치 패키지를 믿어도 되나요?

안 됩니다. Apple은 Windows용 Xcode를 낸 적이 없습니다. 검색 결과는 대개 원격 Mac, 크로스플랫폼 클라우드 서명, CI macOS runner를 뜻하며 Windows에서 Xcode가 도는 것이 아닙니다.

정리

제목으로 돌아가면, Windows만으로 iOS 개발이 되나?——됩니다. 다만 「독립」 정의를 맞춰야 합니다. 코드·리뷰·크로스플랫폼 핫 리로드는 Windows에 두고, Archive·서명·스토어 제출은 macOS 필수——그 Mac은 책상의 새 MacBook이 아니라 원격 전용 M4일 수 있습니다.

  • 「Windows용 Xcode」는 없음. WSL / 해킨토시는 프로덕션 경로 아님.
  • Swift / RN / Flutter 모두 Windows 주력 + 원격 Mac으로 릴리스 가능. 웜 캐시 약 7–11분.
  • Simulator 하루 2시간 이상·Instruments 헤비 유저는 로컬 Mac 권장.
  • 주간 릴리스 팀은 이용 20%에 하드웨어 100% 구매보다 일 단위 원격 Mac mini가 종종 유리.

다음 단계: M4를 하루 대여해 오피스에서 SSH로 실제 저장소 pod install + xcodebuild archive를 돌리고, 글의 숫자가 아니라 본인 RTT·빌드 시간으로 결정하세요.

관련 글