React Native로 Mac에서 iOS 앱을 개발할 수 있습니다. 프로젝트가 요구하는 Node.js와 자바스크립트 의존성을 먼저 준비하고, Xcode와 CocoaPods를 확인한 다음 시뮬레이터나 Xcode에서 빌드하면 됩니다. 실제 설치 명령과 버전은 프로젝트 설정 및 공식 문서를 기준으로 판단해야 합니다.
이 글은 React Native iOS 앱 개발 환경을 처음 구성하는 개발자에게 적합합니다.
CocoaPods 설치나 iOS 의존성 설정에서 막힌 프런트엔드 개발자도 순서대로 점검할 수 있습니다.
로컬 또는 원격 Mac에서 시뮬레이터와 빌드 환경을 준비하는 개인 및 팀을 위한 안내입니다.
개발 환경과 전체 흐름
React Native의 iOS 앱을 빌드하려면 macOS를 실행하는 Mac과 Xcode가 필요합니다. 전체 과정은 자바스크립트 실행 환경 준비, 프로젝트 의존성 설치, 네이티브 의존성 확인, 시뮬레이터 실행 또는 Xcode 빌드 순서로 이어집니다. React Native의 공식 환경 설정 안내는 프로젝트 방식에 맞춰 필요한 도구와 설정을 확인하도록 안내합니다.
| 점검 대상 | 확인할 기준 | 판단에 필요한 자료 |
|---|---|---|
| Node.js와 패키지 관리자 | 프로젝트가 지정한 버전과 설치 방식 | package.json 및 프로젝트 안내 |
| Xcode와 시뮬레이터 | Xcode 실행 여부, 선택된 개발자 도구, 사용 가능한 시뮬레이터 | Xcode 설정과 Apple 안내 |
| iOS 네이티브 의존성 | Podfile, 설치된 Pods, 프로젝트 작업 공간 |
ios 폴더와 CocoaPods 설정 |
시작 전에 저장소의 설치 안내와 설정 파일을 먼저 읽어야 합니다. 여기에 적힌 Node.js 버전, 패키지 관리자, 실행 스크립트가 일반적인 온라인 예시보다 우선합니다. 구성 파일이 서로 다른 패키지 관리자를 가리키거나 팀 안내와 충돌한다면 임의로 바꾸지 말고 저장소 기록과 담당자의 빌드 방식을 확인합니다.
Node.js와 자바스크립트 의존성 준비
Node.js를 설치하기 전에 프로젝트의 package.json과 개발 문서를 확인합니다. engines 항목이 버전 조건을 지정할 수 있고, 스크립트에는 프로젝트에서 의존하는 개발 명령이 정의될 수 있습니다. npm 문서의 package.json 항목 안내를 참조하되, 해당 항목이 없는 프로젝트의 요구 사항을 임의로 추정하지 않는 편이 안전합니다.
| 프로젝트에 보이는 단서 | 진행 방법 | 피해야 할 대응 |
|---|---|---|
| 저장소에 패키지 잠금 파일이 있음 | 프로젝트에서 지정한 패키지 관리자와 설치 절차를 따릅니다. | 다른 패키지 관리자로 잠금 파일을 덮어쓰지 않습니다. |
package.json에 실행 스크립트가 있음 |
스크립트 이름과 저장소 안내를 확인한 뒤 실행합니다. | 흔히 쓰이는 명령을 프로젝트 확인 없이 복사하지 않습니다. |
| Node.js 버전 조건이 명시됨 | 지정된 조건과 현재 설치 버전을 비교합니다. | 모든 React Native 프로젝트에 같은 버전을 적용하지 않습니다. |
설치 후에는 터미널에서 node -v와 패키지 관리자 버전 확인 명령을 실행해 도구가 호출되는지 살펴봅니다. 그다음 프로젝트가 지정한 방식으로 의존성을 설치합니다. npm을 사용하는 프로젝트라면 npm 설치 명령 안내에서 설치 동작과 옵션을 확인할 수 있습니다. 설치가 끝났는데 모듈을 찾을 수 없다는 오류가 나오면 명령을 반복하기보다 현재 폴더, 사용한 패키지 관리자, 잠금 파일을 먼저 확인합니다.
CocoaPods로 iOS 의존성 설치
React Native 프로젝트의 iOS 네이티브 의존성은 CocoaPods로 관리되는 경우가 많지만, 모든 저장소에 같은 절차를 적용할 수는 없습니다. ios 폴더에 Podfile이 있는지 확인하고, 프로젝트 안내가 지정한 위치에서 설치를 진행합니다. Podfile은 네이티브 의존성 구성을 담는 파일이며, 자세한 역할은 CocoaPods의 Podfile 안내에서 확인할 수 있습니다.
프로젝트에서 CocoaPods 설치를 요구한다면 대개 안내된 작업 폴더에서 pod install을 실행합니다. 이 명령은 Podfile에 따른 의존성을 설치하고 Xcode 작업 공간을 사용하는 흐름과 연결됩니다. 이후에는 생성된 Pods 디렉터리와 .xcworkspace 파일이 있는지 확인합니다. 작업 공간이 만들어지는 프로젝트라면 Xcode에서 .xcodeproj 대신 안내된 .xcworkspace를 열어야 합니다.
의존성을 새로 확인하려는 상황에서 pod update를 무조건 실행하는 것은 피해야 합니다. 이 명령은 의존성 버전 변경을 일으킬 수 있으며, 설치 상태를 재현해야 하는 작업과 목적이 다릅니다. 차이는 CocoaPods의 pod install과 pod update 비교에서 확인하고, 저장소의 잠금 파일과 팀 절차에 맞춰 선택합니다.
Xcode와 빌드 도구 확인
Xcode를 설치하거나 처음 실행한 뒤에는 라이선스 동의, 개발자 도구 선택, 시뮬레이터 사용 가능 여부를 확인합니다. macOS와 Xcode 조합에 따라 표시되는 설정이나 내려받을 수 있는 iOS SDK가 달라질 수 있으므로, 현재 화면과 사용 중인 프로젝트의 요구 사항을 기준으로 판단합니다. Apple의 Xcode 명령 줄 도구 안내에서는 도구 설치와 선택 상태를 확인할 수 있습니다.
| 확인 항목 | 정상 여부를 판단하는 방법 | 이상이 있을 때 볼 곳 |
|---|---|---|
| Xcode 실행 및 라이선스 | Xcode가 열리고 초기 설정이 완료되는지 확인합니다. | Xcode 알림과 설치 상태 |
| 명령 줄 도구 | 터미널의 개발자 도구 경로와 선택 상태를 확인합니다. | xcode-select 관련 출력 |
| 시뮬레이터와 SDK | Xcode에서 사용 가능한 시뮬레이터 기기와 런타임을 확인합니다. | 플랫폼 구성 및 추가 구성요소 |
시뮬레이터 런타임이 보이지 않는다면 Xcode의 구성 요소 상태를 확인합니다. 필요한 구성 요소를 내려받는 방법은 Apple의 Xcode 추가 구성 요소 안내를 참고할 수 있습니다. 설치 완료 여부만 확인하지 말고 프로젝트가 선택한 시뮬레이터와 실제로 호환되는지도 살펴야 합니다.
시뮬레이터에서 React Native 앱 실행
React Native의 실행 스크립트는 프로젝트마다 다를 수 있습니다. 저장소의 package.json에서 실행 가능한 스크립트를 확인하고, 공식 iOS 시뮬레이터 실행 안내와 프로젝트 지침을 함께 참고합니다. Metro는 자바스크립트 번들을 제공하는 개발 서버이고, Xcode 빌드는 iOS 네이티브 앱을 컴파일하는 과정입니다. 한쪽이 성공했다고 다른 쪽까지 검증된 것은 아닙니다.
- [ ] 저장소 루트와
package.json의 스크립트를 확인합니다. - [ ] 프로젝트가 요구하는 Node.js와 패키지 관리자를 준비합니다.
- [ ] 프로젝트 지침에 따라 자바스크립트 의존성을 설치합니다.
- [ ] iOS 폴더의
Podfile을 확인하고 필요한 경우 CocoaPods 설치를 진행합니다. - [ ] Xcode에서 사용 가능한 시뮬레이터를 선택하고, 프로젝트에서 안내한 실행 방법을 사용합니다.
- [ ] Metro 출력과 Xcode 빌드 출력을 각각 살펴봅니다.
- [ ] 앱 실행 후 오류가 발생하면 처음 나타난 실패 지점과 관련 로그를 기록합니다.
React Native CLI 스크립트로 실행하더라도 실제 네이티브 컴파일은 Xcode 도구 체인에 의존합니다. Xcode에서 직접 빌드할 때는 프로젝트가 안내한 작업 공간을 열고 대상 기기와 빌드 설정을 확인합니다. 등록된 실제 기기에 앱을 배포하는 경우에는 시뮬레이터와 달리 서명 및 기기 등록 조건이 적용될 수 있으므로 Apple의 등록된 기기에 앱을 배포하는 안내도 확인해야 합니다.
Xcode 빌드 실패 점검 순서
빌드가 멈추면 모든 캐시를 지우기 전에 첫 오류와 실패한 빌드 단계를 확인합니다. 로그 끝에 표시된 요약만으로 원인을 단정하지 말고, 관련 설정과 그 직전에 발생한 오류를 함께 비교합니다.
| 증상 | 먼저 확인할 자료 | 다음 점검 |
|---|---|---|
| 자바스크립트 모듈 또는 명령을 찾지 못함 | package.json, 잠금 파일, 설치 로그 |
패키지 관리자와 프로젝트 루트가 맞는지 확인합니다. |
| Pod 의존성 또는 모듈 오류 | Podfile, Pod 설치 출력, 작업 공간 파일 |
설치 절차와 Xcode에서 연 파일이 프로젝트 안내와 일치하는지 확인합니다. |
| SDK 또는 컴파일 도구 오류 | Xcode 빌드 로그, 선택된 개발자 도구, 시뮬레이터 목록 | 프로젝트와 현재 Xcode에서 사용할 수 있는 SDK 및 구성 요소를 대조합니다. |
| 서명이나 대상 기기 오류 | Xcode의 서명 설정과 빌드 대상 | 시뮬레이터 빌드인지 실제 기기 배포인지 구분합니다. |
React Native 의존성 오류처럼 보여도 실제 원인은 잘못된 Node.js 버전일 수 있고, 반대로 Metro가 정상이어도 CocoaPods나 Xcode 단계에서 빌드가 실패할 수 있습니다. 오류를 해결하려고 pod update나 전체 정리 명령부터 실행하면 잠금 파일이나 의존성 상태가 바뀌어 원인 파악이 어려워질 수 있습니다. 로그가 가리키는 단계 하나씩 검증하고, 재현에 필요한 설정과 변경 사항을 기록합니다.
환경 준비를 마친 뒤 선택할 작업 방식
Node.js와 의존성 설치, CocoaPods, Xcode 순서로 아래 항목을 점검하면 로컬에서 계속 개발할 수 있는지, 다른 Mac 환경이 필요한지 구분하기 쉽습니다.
- [ ] 프로젝트 안내와 잠금 파일을 기준으로 Node.js 및 패키지 관리자를 선택했습니다.
- [ ] 자바스크립트 의존성 설치 결과를 로그로 확인했습니다.
- [ ] 필요한 프로젝트에서 CocoaPods 설치와 작업 공간 생성을 확인했습니다.
- [ ] Xcode 개발자 도구와 사용할 시뮬레이터를 확인했습니다.
- [ ] Metro 실행과 네이티브 빌드 결과를 별도로 확인했습니다.
이미 사용 가능한 Mac이 있다면 현재 환경에서 프로젝트를 재현하는 것이 가장 직접적입니다. 반대로 Mac이 없는 팀은 다른 운영체제에서 자바스크립트 코드를 작성할 수는 있어도, iOS 시뮬레이터와 Xcode 네이티브 빌드 검증을 대신할 수 없습니다. 장기간 반복해서 쓰는 환경은 직접 마련하는 편이 맞을 수 있지만, 단기 빌드나 테스트 환경이 필요한 경우에는 Zutcloud의 한국 Mac mini 대여 정보에서 실제 제공 조건을 확인한 뒤 비교할 수 있습니다. 원격 접속이나 사용 절차가 불명확하면 도움말 센터에서 확인 가능한 내용을 먼저 살펴보세요. 고정적으로 무거운 빌드를 수행하거나 물리 장치 연결이 필요한 경우에는 임대보다 직접 관리하는 Mac이 더 적합할 수 있습니다.
React Native iOS 개발을 위한 전용 Mac 환경을 준비하세요
Node.js 설정부터 코코아팟 설치와 엑스코드 빌드까지, Zutcloud의 애플 실리콘 기반 전용 Mac mini에서 이어서 작업할 수 있습니다.
실제 애플 실리콘 베어메탈 자원을 사용해 시뮬레이터 실행과 네이티브 빌드를 위한 안정적인 원격 개발 환경을 마련할 수 있습니다. 지금 주문