React Native 0.87 맥 없이 어떻게 개발할까? 2026 납품 방안
Windows나 Linux에서 React Native 0.87의 JavaScript와 공통 코드를 계속 개발할 수 있습니다. 다만 iOS 시뮬레이터, 네이티브 의존성, Xcode 빌드, 서명과 배포는 맥 실행 계층이 필요하므로 원격 맥과 로컬 환경을 나누는 기준을 제시합니다.
목차
2026년 4월 28일부터 App Store Connect 제출 앱은 Xcode 26 이상과 해당 SDK로 빌드해야 한다고 Apple이 안내했습니다. Apple의 공식 제출 요구 사항에 연결하면, React Native 0.87을 맥 없이 개발할 때의 답은 분명합니다. 공통 코드는 Windows나 Linux에 남기고, 시뮬레이터·네이티브 빌드·서명·배포만 맥 실행 계층으로 넘겨야 합니다.
이번 주 권장 행동: 실제 저장소를 원격 맥에 새로 복제한 뒤 의존성 설치, 시뮬레이터 테스트, Archive까지 한 번에 확인하십시오. 이 흐름이 통과하기 전에는 맥 구매나 장기 운영을 결정하지 않는 편이 안전합니다.
이 글을 읽어야 하는 사람
Windows 또는 Linux를 주 개발 환경으로 쓰며 React Native 0.87의 iOS 앱을 완성해야 하는 개발자에게 적합합니다.
React Native 프로젝트의 애플 CI 노드 역할을 정하려는 DevOps 엔지니어와, 맥 구매·대여·공유 방식을 비교하는 기술 책임자도 같은 기준을 사용할 수 있습니다.
마지막 업데이트: 2026년 9월 20일. React Native 공식 버전 안내와 환경 문서, Apple의 Xcode 및 제출 요구 사항을 기준으로 확인했습니다. 이후 버전이나 Xcode의 세부 요구 사항은 공식 발표 전까지 확정된 사실로 보지 않아야 합니다.
작업 위치를 먼저 나누면 실패 지점이 보입니다
Windows에서 JavaScript와 TypeScript를 작성하고 Metro를 실행하는 일은 계속할 수 있습니다. 공통 비즈니스 로직, 일부 단위 테스트, Android 작업도 같은 환경에 남길 수 있습니다. 그러나 이것은 iOS 납품이 가능하다는 뜻이 아닙니다.
React Native의 공식 환경 문서는 iOS 개발에 Xcode 환경이 필요하다고 안내합니다. React Native 환경 설정 문서와 0.87 배포 안내를 함께 확인하면, 코드 작성과 애플 실행 계층을 분리해야 하는 이유를 알 수 있습니다.
| 작업 | Windows 또는 Linux | 원격 맥 | 판단 근거 |
|---|---|---|---|
| JavaScript·TypeScript 작성 | 가능 | 가능 | 공통 코드 중심 |
| Metro와 Android 개발 | 가능 | 가능 | 애플 도구가 필요하지 않은 작업 |
| iOS Simulator 조작 | 불가 | 가능 | Xcode 그래픽 세션 필요 |
| Swift·Objective-C 모듈 확인 | 제한됨 | 가능 | 맥의 네이티브 도구 체인 필요 |
| CocoaPods와 Xcode 빌드 | 불가 | 가능 | iOS 프로젝트 빌드 단계 |
| Archive·서명·배포 | 불가 | 가능 | Apple 배포 도구와 자격 증명 필요 |
이 표의 핵심은 “개발 가능”이라는 말을 세 단계로 나누는 것입니다. JavaScript 계층이 통과한 것, 네이티브 프로젝트가 생성된 것, Xcode 빌드가 성공한 것은 서로 다른 결과입니다. 첫 번째만 통과한 상태에서 배포 가능하다고 판단하면 마지막 단계에서 일정이 중단됩니다.
화면 확인과 명령 실행은 원격 맥에서 분리합니다
원격 맥은 두 가지 접속을 따로 검증해야 합니다. 원격 데스크톱은 Simulator와 Xcode 화면을 조작하는 경로이고, SSH는 의존성 설치·스크립트 실행·로그 수집·CI 작업을 처리하는 경로입니다. 한쪽이 접속된다고 다른 쪽까지 정상이라고 가정하면 안 됩니다.
다음 순서로 확인하십시오.
- 원격 맥에 독립 계정
<DEV_USER>를 만들고 저장소 접근 권한을 최소 범위로 설정합니다. - SSH로 접속해
node, 패키지 관리자,ruby,CocoaPods및 프로젝트가 요구하는 도구의 버전을 기록합니다. - 저장소를 새 디렉터리에 복제하고 잠금 파일에 맞춰 JavaScript 의존성을 설치합니다.
- iOS 디렉터리에서 네이티브 의존성을 설치한 뒤 프로젝트 파일이 정상적으로 생성되는지 확인합니다.
- 원격 데스크톱으로 Simulator를 열고
<BUNDLE_IDENTIFIER>앱을 실행해 화면, 권한 요청, 네이티브 모듈을 확인합니다. - SSH에서 같은 커밋을 기준으로 빌드 명령을 실행하고 로그와 결과 파일을 보관합니다.
- 접속을 끊었다가 다시 연결해 작업 상태, 로그 위치, 임시 파일 정리 상태를 확인합니다.
Apple은 시뮬레이터와 실제 기기에서 앱을 빌드하고 실행하는 방법을 별도로 설명합니다. Simulator 통과는 개발 검증에 유용하지만 실제 기기 호환성을 대신하지 않습니다. 카메라, 푸시 알림, 블루투스, 결제와 같은 기능은 실제 기기와 테스트 계정으로 별도 확인해야 합니다.
네이티브 의존성이 들어오는 순간 맥 검증이 필수가 됩니다
순수 JavaScript 작업만 할 때는 Windows나 Linux에서 많은 진전을 만들 수 있습니다. 하지만 Swift 또는 Objective-C 파일을 추가하거나, 네이티브 모듈의 설정을 바꾸거나, CocoaPods 설치 결과를 확인하는 순간에는 맥에서 같은 저장소를 재현해야 합니다.
React Native 0.87의 SwiftPM 경로는 실험적 사용 경로로 다뤄야 하며, 이 글에서는 CocoaPods와 SwiftPM 중 어느 쪽으로 옮길지 비교하지 않습니다. 중요한 기준은 선택한 의존성 관리 방식이 실제 프로젝트에서 새로 재현되는지입니다. 기존 개발자의 캐시나 개인 경로가 남아 있으면 CI에서 실패할 수 있습니다.
다음 증거를 각각 남기십시오.
- 새 복제본에서 의존성 설치가 끝났다는 로그
<PROJECT_PATH>아래 생성된 네이티브 프로젝트의 변경 상태- Xcode 빌드 성공 로그와 실패 시 원인
- Simulator에서 실행된 커밋 식별자
- 테스트가 참조한 환경 변수와 비밀 값의 이름만 기록한 목록
비밀 값 자체는 기록하지 않아야 합니다. 특히 <TEAM_ID>, <BUNDLE_IDENTIFIER>, <CERTIFICATE_NAME>과 같은 값은 프로젝트 문서에서 자리 표시자로 관리하고, 일반 개발 계정과 배포 계정을 분리하십시오.
주의: JavaScript 테스트가 통과했다는 결과를 iOS 납품 승인으로 사용하지 마십시오. 네이티브 프로젝트 생성, Xcode 빌드, 설치 가능한 결과물 생성이 모두 확인되어야 다음 단계로 넘어갈 수 있습니다.
CI에서는 공통 노드와 맥 노드의 책임을 나눕니다
코드 형식 검사, 타입 검사, 공통 단위 테스트처럼 Apple 도구 체인에 의존하지 않는 작업은 기존 Linux 또는 Windows 노드에 남길 수 있습니다. 반대로 Xcode 빌드, iOS Simulator 테스트, Archive 생성은 맥 노드로 라우팅해야 합니다.
맥 CI 노드는 다음 조건을 갖춰야 합니다.
- 일반 개발 계정과 분리된 CI 계정
- 프로젝트가 요구하는 Xcode와 패키지 도구 버전의 고정
- 작업이 끝난 뒤 파생 데이터와 임시 작업 공간을 정리하는 절차
- 같은 커밋을 다시 실행할 수 있는 저장소와 로그 보관
- 재시작 뒤 에이전트가 복구되는지 확인하는 운영 시험
여기서 Xcode 27을 사용해야 하는 팀이라면, “설치되어 있다”는 사실보다 프로젝트가 실제로 빌드되는지 먼저 확인해야 합니다. Apple의 현재 제출 안내는 2026년 4월 28일 이후 Xcode 26 이상을 기준으로 제시하지만, 특정 프로젝트가 Xcode 27에서 모든 네이티브 의존성과 호환된다는 뜻은 아닙니다. Xcode 버전과 SDK 요구 사항은 Apple의 공식 문서에서 다시 확인해야 합니다.
CI 승인 기준은 다음처럼 단순화할 수 있습니다.
- 동일한 커밋이 공통 노드의 검사와 맥 노드의 빌드를 모두 통과할 것
- 맥 노드에서 Simulator 테스트 결과와 빌드 로그가 남을 것
- 생성된 Archive 또는 배포 파일의 해시와 저장 위치가 기록될 것
- 작업 공간을 지운 뒤 같은 커밋을 다시 실행할 수 있을 것
이 네 가지 중 하나라도 빠지면 “CI가 연결되었다”가 아니라 “부분적으로 실행된다”고 기록하는 편이 정확합니다.
서명과 배포는 별도의 승인 단계로 취급합니다
Xcode 빌드가 성공해도 배포가 끝난 것은 아닙니다. Archive 생성, 내보내기, 서명 검증, TestFlight 또는 App Store Connect 업로드가 각각 통과해야 합니다. Apple의 Archive와 앱 배포 문서와 배포 전 프로젝트 설정 안내를 기준으로 절차를 분리하십시오.
권장 흐름은 다음과 같습니다.
<BUNDLE_IDENTIFIER>와<TEAM_ID>가 승인된 값인지 확인합니다.- 배포용 인증서와 개인 키를 일반 개발 세션과 분리된 계정에 연결합니다.
- Archive를 생성하고 서명 상태를 확인합니다.
- 설치 가능한 결과물을 별도 검증 기기나 테스트 계정에서 확인합니다.
- 업로드 기록, 승인자, 커밋 식별자와 결과 파일을 보관합니다.
공유 원격 맥을 모든 사용자에게 관리자 권한으로 열어 두면 편리해 보이지만, 개인 키와 배포 토큰이 노출될 위험이 커집니다. 개발용 원격 맥과 배포용 맥 노드를 나누거나, 최소 권한 계정과 일회성 자격 증명을 사용해야 합니다.
자주 묻는 판단을 작업 기준으로 정리합니다
Windows에서 iOS 앱의 일부를 계속 개발할 수 있습니다
Windows에서는 공통 화면, 상태 관리, API 연동, JavaScript 테스트와 Android 실행을 진행할 수 있습니다. 다만 iOS 전용 오류를 조기에 발견하려면 정기적으로 맥 노드에서 시뮬레이터와 네이티브 빌드를 실행해야 합니다. 검증 주기가 너무 길면 마지막 주에 의존성이나 서명 문제를 한꺼번에 발견하게 됩니다.
원격 맥은 그래픽 작업과 자동화 작업을 모두 처리할 수 있습니다
원격 데스크톱은 Simulator 조작에 사용하고 SSH는 자동화에 사용하면 됩니다. 단, 네트워크 지연 때문에 화면 조작이 불편할 수 있고 실제 기기와의 연결은 별도 조건이 필요합니다. 낮은 지연의 매일 작업이 핵심이면 로컬 맥을, 간헐적인 검증과 CI가 중심이면 원격 맥을 우선 검토하십시오.
구매 전에는 실제 저장소로 검증해야 합니다
맥 미니를 바로 구매하는 방식은 장기간 매일 사용할 팀에는 적합할 수 있습니다. 반대로 짧은 프로젝트나 월별 릴리스처럼 사용 빈도가 불규칙하면 먼저 VPSMAC의 원격 맥 환경에서 실제 저장소의 설치부터 Archive까지 시험하는 편이 낫습니다. 서울이나 다른 지역 노드를 비교할 때도 단순한 위치보다 팀의 접속 지연, 사용 시간대와 복구 절차를 함께 확인해야 합니다.
이번 주에 실행할 검증 순서
다음 순서를 그대로 적용하면 선택이 빨라집니다.
- Windows 또는 Linux에서 공통 코드와 Android 검사를 먼저 완료합니다.
- 실제 저장소를 원격 맥에 새로 복제합니다.
- React Native 0.87 의존성을 설치하고 네이티브 프로젝트를 생성합니다.
- 원격 데스크톱에서 Simulator 실행과 화면 검증을 진행합니다.
- SSH에서 같은 커밋의 빌드와 테스트를 실행합니다.
<TEAM_ID>와<BUNDLE_IDENTIFIER>를 사용해 Archive를 생성합니다.- 서명 확인과 설치 검증을 거친 뒤 배포 기록을 남깁니다.
- 작업 공간을 지우고 재시작 후 같은 흐름이 다시 실행되는지 확인합니다.
이 결과를 바탕으로 선택하십시오. 주 1회 이하의 iOS 검증이나 단기 납품이면 원격 맥을 먼저 사용합니다. 매일 Simulator를 조작하고 실제 기기와 반복적으로 연동해야 하면 로컬 맥을 검토합니다. 공통 코드는 기존 환경에 두고 애플 실행 계층을 원격 CI로 분리하는 방식은 팀 개발에서 가장 균형 잡힌 선택입니다.
Windows나 Linux만으로 끝까지 처리하려고 하면 iOS Simulator, Xcode 빌드, 네이티브 의존성, 서명이라는 네 가지 지점에서 막힙니다. 반대로 맥을 처음부터 구매하면 사용 빈도가 낮은 프로젝트에서 장비와 관리 비용이 남을 수 있습니다. VPSMAC의 원격 맥은 이런 단기 검증과 CI 실행에는 적합하지만, 매일 낮은 지연으로 화면을 조작하거나 물리 기기를 직접 연결해야 하는 경우에는 로컬 맥이 더 나을 수 있습니다. 먼저 하나의 React Native 0.87 프로젝트로 전체 납품 흐름을 확인한 뒤, 장기 대여·구매·혼합 CI 중 하나를 결정하는 순서가 가장 안전합니다.
실제 프로젝트의 저장소, 의존성, Simulator 테스트와 Archive가 준비되어 있다면 원격 맥 노드 선택지를 확인하고 짧은 검증 주기로 시작하십시오. 비용보다 먼저 재현성과 복구 가능성을 확인해야 최종 납품 단계에서 예상하지 못한 맥 의존성 문제가 줄어듭니다.
자주 묻는 질문
Windows에서 React Native로 iOS 앱을 개발할 수 있나요?
JavaScript와 TypeScript 작성, Metro 실행, 공통 로직 테스트, Android 개발은 Windows에서 계속할 수 있습니다. 그러나 iOS 시뮬레이터와 Xcode 빌드, 애플 서명과 배포는 맥이 필요합니다. 따라서 Windows를 버릴 필요는 없지만, 애플 실행 단계만 원격 맥이나 팀의 맥 노드로 분리해야 합니다.
React Native 개발에서 맥이 꼭 필요한 단계는 무엇인가요?
Xcode 프로젝트를 실제로 빌드하는 단계, iOS 시뮬레이터에서 화면과 네이티브 동작을 확인하는 단계, Swift나 Objective-C 모듈과 CocoaPods를 검증하는 단계가 대표적입니다. Archive 생성, 인증서와 개인 키를 이용한 서명, 배포용 파일 업로드도 맥 실행 계층에서 처리하는 편이 안전합니다.
원격 맥에서 React Native 시뮬레이터를 실행할 수 있나요?
가능합니다. 원격 데스크톱으로 그래픽 세션에 접속해 Simulator를 조작하고, SSH로 의존성 설치와 빌드 명령을 실행하는 방식으로 역할을 나눕니다. 다만 화면 접속과 SSH 접속은 별도로 확인해야 하며, 시뮬레이터 결과를 실제 기기의 카메라, 알림, 성능 호환성 검증으로 간주해서는 안 됩니다.
맥이 없으면 React Native 앱을 어떻게 서명하고 배포하나요?
Windows나 Linux에서 코드를 작성한 뒤 원격 맥에서 의존성을 설치하고 Xcode 빌드와 Archive를 수행합니다. 이후 지정된 Team ID, Bundle Identifier, 인증서와 개인 키를 격리된 배포 계정으로 사용해 서명합니다. 설치 가능한 결과물과 서명 확인 기록, 업로드 기록을 남겨야 하며 공유 계정에 개인 키를 방치하면 안 됩니다.
React Native 개발에는 맥을 빌리는 편이 좋나요, 구매하는 편이 좋나요?
짧은 프로젝트, 간헐적인 iOS 빌드, 호환성 확인이 목적이면 먼저 원격 맥으로 실제 저장소의 전체 흐름을 시험하는 편이 합리적입니다. 매일 시뮬레이터를 조작하거나 실제 기기와 낮은 지연으로 연동해야 한다면 로컬 맥이 편합니다. 팀은 로컬 개발과 원격 CI를 함께 두는 혼합 방식도 검토할 수 있습니다.