VPSSpark 블로그
← 개발 일기로

클라우드 Mac으로 첫 iOS 빌드에 성공했다——실제로 돌아가는 App

개발 일기 · 2026.06.12 · 약 10분
0에서 Archive: 원격 Xcode 실전 기록

무릎 위 MacBook으로 원격 작업——클라우드 Mac Xcode·iOS 빌드 장면
로컬은 가볍게, 빌드는 클라우드 Mac에서——첫 Archive 전 주말의 전형적인 모습.

일상 개발 환경은 Windows 노트북, 백엔드와 스크립트는 Linux VPS에서 돌아갑니다. iOS만큼은 Xcode와 Apple 하드웨어를 피할 수 없죠. Mac mini를 사는 것도 방법이지만, 「App을 끝까지 만들 수 있을지」 아직 모르는 단계에서는 연결·빌드·Simulator·서명·Archive까지 전체 경로를 최소 비용으로 검증하고 싶었습니다. 그래서 클라우드 Mac을 빌려 주말 이틀 동안 SwiftUI App을 iPhone Simulator에서 띄우고, 일요일 밤 첫 Release Archive까지 마쳤습니다. 「Hello World 세 줄」 튜토리얼이 아니라, 원격 Xcode 개발의 실전 일지입니다——밟은 함정과, 생각보다 빨리 끝난 단계도 함께 적습니다.

1대
클라우드 Mac mini로 전 과정
~6h
연결부터 Simulator 성공까지
1회
첫 Archive 성공

로컬 Mac 없이 클라우드 Mac부터 빌린 이유

iOS를 처음 접할 때 대부분 「xcode windows」를 검색합니다——저도 같았어요. 결론은 빠릅니다: App Store용 빌드는 Windows에서 네이티브로 끝낼 수 없습니다. Simulator, codesign, Archive, TestFlight 업로드 모두 macOS에 묶여 있습니다. 해킨토시나 비공식 VM은 개인 취미라면 몰라도, 정식 서명과 나중의 감사를 생각하면 컴플라이언스가 맞는 Apple 하드웨어 위에 올려야 합니다.

Mac 구매의 장벽은 가격만이 아닙니다. 「지금 당장 살 가치가 있는가」도 문제죠. 2주 뒤 iOS 버전을 계속 안 만든다면, 월렌트 클라우드보다 책상 위 Mac mini가 더 낭비입니다. 반대로 주·월 단위로 전용 클라우드 Mac을 빌리면, 한 번의 실습으로 세 가지를 답할 수 있습니다: 원격 Xcode에 적응할 수 있는가? 컴파일 속도는 충분한가? 서명과 Archive에서 막히지 않는가? 모두 긍정이면 그때 본체 구매나 CI 도입을 결정해도 늦지 않습니다. Windows 팀의 체계적 선택은 xcode windows와 virtual mac online 가이드도 참고하세요.

Day 0: 연결, 데스크톱, 「진짜 Mac이구나」 순간

클라우드 Mac 계정을 받은 뒤 두 가지를 준비했습니다: CLI와 VS Code Remote용 SSH, Simulator와 Xcode GUI용 Microsoft Remote Desktop. 리전은 가까운 APAC 노드가 중요합니다——처음에 유럽 머신에 잘못 붙어 git clone과 RDP 지연이 눈에 띄었고, 리전을 바꾼 뒤에야 「로컬 개발 수준」에 가까워졌습니다.

macOS는 기본 설치되어 있지만 Xcode는 보통 직접 넣습니다. Mac App Store에 개인 Apple ID로 로그인해 최신 안정판을 받고, 설치 후 xcodebuild -versionxcode-select -p로 CLI를 확인합니다. 이어 sudo xcodebuild -license accept와 Xcode 첫 실행 시 추가 컴포넌트 설치——진행 바는 원격 데스크톱에서 보는 편이 SSH 맹 실행보다 안심됩니다. 클라우드 Mac의 장점은 해킨토시 없이 부팅 즉시 정식 Apple Silicon이라는 점. Homebrew, Git, SSH 키는 Linux 서버와 같은 감각으로 맞출 수 있어, 학습 곡선은 예상보다 완만했습니다.

Day 0 체크리스트
SSH와 RDP가 안정적으로 연결되는지; Xcode와 Command Line Tools 버전이 일치하는지; git clone이 오류 없이 되는지; 키체인에서 login keychain을 만들고 잠금 해제할 수 있는지. 하나라도 아니면 새 프로젝트는 아직 이릅니다——나중에 서명 단계에서 전부 다시 합니다.

새 프로젝트부터 「Simulator에서 진짜로 탭된다」까지

Xcode에서 App 템플릿, SwiftUI + Swift. Bundle ID는 Developer 계정에 미리 등록해 두었습니다. 첫 Cmd+R로 Simulator를 띄울 때 클라우드 Mac Apple Silicon 이점이 분명했습니다: 클린 빌드 3~4분, 증분 빌드는 십여 초——Linux 컨테이너에서 「크로스플랫폼 빌드」를 상상하던 때보다 훨씬 직관적이었습니다.

가장 신나던 건 컴파일 성공 로그가 아니라, Simulator 창에 아이콘이 뜨고 탭했을 때 UI가 반응한 순간——「이건 App이다」라고 처음 느꼈습니다. 원격 개발 팁: RDP는 전체 화면, Simulator 해상도는 타깃 기기와 맞추기. 코드 수정과 xcodebuild test는 SSH, 첫 UI 조정은 데스크톱이 필수. Windows의 VS Code Remote SSH로 로직을 고치고, 레이아웃 볼 때만 RDP로 전환——한 방식만 고집하는 것보다 두 갈래를 병행하는 편이 수월했습니다.

CLI로도 「돌아간다」를 검증할 수 있다

GUI가 통과하면 Archive 준비로 CLI에서 한 번 더:

Shell · Simulator Debug 빌드
cd ~/Projects/MyFirstApp
                xcodebuild build \
                  -scheme MyFirstApp \
                  -destination 'platform=iOS Simulator,name=iPhone 16' \
                  -configuration Debug

SSH에서 이 명령이 green이면, 프로젝트 설정이 Xcode GUI의 암묵 상태에 묶이지 않았다는 뜻——나중 CI나 야간 빌드로 넘어가도 처음부터 다시 할 필요가 없습니다.

서명의 벽: 개인 개발자도 한 번은 막힌다

Simulator Debug에는 Distribution 인증서가 필요 없지만, Archive에서는 반드시 서명을 만납니다. 제가 막힌 곳은 두 군데: Apple Developer의 App ID와 Bundle ID 불일치; 원격 Mac 키체인 첫 팝업에서 RDP가 끊겨 「항상 허용」을 못 눌러, 백그라운드 xcodebuild archive가 조용히 실패한 경우.

개인 계정은 Automatic Signing으로 먼저 통과할 수 있습니다. App Store 출시를 본다면 일찍 App Store Connect API Key로 키를 문서화하고, GUI 클릭만 믿지 마세요. 제 절차: Xcode Signing & Capabilities에서 자동 관리 ON, Team 확인; 원격 데스크톱에서 사람이 붙어 있는 상태로 Archive 한 번 돌려 키체인 허용을 모두 끝낸 뒤, 무인 CLI Archive를 시도하면 성공률이 올라갑니다.

원격 서명에서 자주 놓치는 한 가지
클라우드 Mac 재부팅이나 세션 만료 후 login keychain이 다시 잠길 수 있습니다. 릴리스 전 security unlock-keychain -p '…' ~/Library/Keychains/login.keychain-db(비밀번호는 vault 관리, 저장소에 넣지 말 것)를 실행하고, Distribution 인증서가 「내 인증서」에 남아 있는지 확인하세요. Xcode GUI에서는 Archive 되는데 CLI는 야간에 실패하는 패턴——이걸 조심해야 합니다.

첫 Archive: 「돌아간다」에서 「넘길 수 있다」로

Archive와 Debug 빌드는 다른 길입니다. Xcode에서 Any iOS Device (arm64) 선택, Product → Archive. Organizer에 첫 기록이 생겼을 때 Simulator에서 App을 탭한 것보다 더 안도감이 있었습니다——Release 설정, 최적화 수준, 서명 체인이 모두 통과했으니까요. CLI 동등 명령:

Shell · Release Archive(유효한 서명 필요)
xcodebuild archive \
                  -scheme MyFirstApp \
                  -configuration Release \
                  -archivePath build/MyFirstApp.xcarchive \
                  -destination 'generic/platform=iOS' \
                  CODE_SIGN_STYLE=Automatic \
                  DEVELOPMENT_TEAM=XXXXXXXXXX

IPA 내보내기는 Organizer의 Distribute App 또는 xcodebuild -exportArchive. 그날 밤은 Archive와 로컬 IPA 구조 확인까지——TestFlight 업로드는 급하지 않았습니다. 첫 iOS에게 Archive 성공 자체가 이정표입니다. 다음에 자동화한다면, 팀 CI 계층과 Archive를 PR 풀에 섞지 않는 이유는 Cloud Mac 기반 iOS CI 용량 설계를 미리 읽어 두면 좋습니다. 개인 첫 실행에 3대 구성까지는 필요 없지만, 「Archive는 격리해야 한다」를 알면 돌아갈 길이 줄어듭니다.

원격 Xcode의 실제 감각: 받아들일 만하지만 역할 분담이 필요

솔직히 말하면, 키보드와 화면이 한 몸인 MacBook만큼 매끄럽지는 않습니다. 다만 허용 가능한 지연 아래에서는 iOS 첫 출시가 충분히 가능합니다. 제 정리:

  • 코드 작성: Windows + VS Code Remote SSH로 Swift 수정——체감은 로컬에 가깝습니다.
  • UI / Simulator: RDP 또는 화면 공유 필수. 지연은 리전과 대역폭에 달립니다.
  • 빌드와 Archive: 클라우드 Mac에서 실행. Windows에서 iOS 크로스 컴파일은 시도하지 마세요.
  • 자산과 저장소: Git만 사용. USB로 두 머신 간 복사 금지——DerivedData는 재생성 가능, Git 히스토리는 되돌리기 어렵습니다.

클라우드 Mac의 또 다른 이점은 깨끗한 환경입니다. iOS 전용 사용자와 키체인을 분리하면, 개인 노트북에 흩어진 글로벌 툴체인과 충돌하지 않습니다. 「가끔 iOS를 만지는 백엔드 개발자」에게는 책상에서 먼지 쌓이는 Mac보다 현실적입니다.

제 타임라인(대조용)

단계 소요(대략) 산출물
연결, Xcode 설치, 저장소 clone 1~2시간 원격 Shell + 데스크톱 사용 가능
새 프로젝트, Simulator Debug 2~3시간 Simulator에서 탭 가능한 App
서명·키체인 장애 대응 1~2시간 Automatic Signing 안정
첫 Release Archive 30~60분 .xcarchive / IPA 내보내기 가능

비슷한 프로젝트 두 번째부터는 Archive가 보통 30분 이내——병목은 「할 수 있나」에서 「캐시와 서명이 상주하나」로 바뀝니다. 그래서 많은 사람이 첫 클라우드 Mac을 일할이 아니라 구독으로 씁니다: DerivedData와 키체인 상태는 같은 머신에 남길 가치가 있으니까요.

「첫 iOS」를 위한 0에서 Archive 체크리스트

로컬 Mac 없이 iOS를 검증하려면 순서대로 체크하세요:

  • 컴플라이언스가 맞는 cloud mac 대여(Apple Silicon, 메모리 ≥16GB 권장).
  • SSH + RDP 이중 채널 준비; 리전은 가까운 쪽.
  • Xcode 설치, 라이선스 동의, 추가 컴포넌트.
  • Apple Developer에 Bundle ID 등록, Xcode Signing 빨간 오류 없음.
  • Simulator Debug와 xcodebuild build 모두 통과.
  • 사람이 붙어 GUI Archive 한 번 완료한 뒤 CLI 시도.
  • (선택)IPA export 후 App Store Connect 요건에 맞춰 메타데이터 준비.

여섯 번째까지 오면 「xcode windows」 검색에서 멈춘 대다수보다 한 발 앞——Simulator 데모가 아니라 진짜 넘길 수 있는 아카이브가 손에 있습니다.

다음 단계는
개인 App만이라면: 클라우드 Mac 구독 + 수동 Archive로 충분. 주간 릴리스로 들어가면: 같은 머신을 셀프호스트 Runner로 등록하고, PR은 테스트만, main에서 Archive. 첫 성공 전에 CI를 과설계하지 마세요——다만 Archive가 통과한 날은 「임시 빌린 데스크톱」을 「이름 있는 릴리스 노드」로 승격시킬 타이밍입니다.

클라우드 Mac mini에서 첫 iOS 빌드가 더 납득된다

로컬 Mac 없이도 Xcode·Simulator·Archive를 정공법으로 통과하려면 VPSSpark 클라우드 Mac mini M4 전용 Apple Silicon 노드가 선택지입니다. 통합 메모리로 Swift 컴파일과 링크가 수월하고, 저전력이라 RDP를 길게 켜 UI를 조정하기 좋으며, macOS 네이티브 툴체인과 Gatekeeper 덕에 서명 환경도 설명하기 쉽습니다.

한 주로 「진짜 돌아가는 App을 만들 수 있는지」를 검증하는 편이, 먼저 하드웨어 예산을 쓰는 것보다 합리적입니다. 검증 후에도 같은 클라우드 Mac을 Archive 전용으로 계속 쓸 수 있고, 팀이 커져 Runner를 여러 대로 나눌 때는 이미 실측 데이터가——종이 위 CI안보다 훨씬 믿을 만합니다.

0에서 Archive까지, 부족한 건 컴플라이언스가 맞는 macOS 환경뿐입니다. VPSSpark 클라우드 Mac 플랜 보기, xcodebuild archive 한 번으로 원격 iOS 개발이 맞는지 확인해 보세요.

한정

첫 iOS 빌드? 클라우드 Mac mini 바로 시작

원격 Xcode · Simulator · Archive · Apple Silicon M4

한정 혜택 플랜 보기