안정 채널은 Xcode 27에 그대로 두고, iPhone Duo용 Xcode 27.1은 격리된 검증 채널로 준비해야 합니다. 테스트 자원이 부족하거나 단기 적응만 필요하다면 모든 로컬 장비를 교체하지 말고 독립된 맥 환경을 임시로 추가하는 편이 안전합니다.
이 글은 유일한 빌드 맥을 관리하는 독립 개발자, iPhone 18 Pro와 iPhone Duo를 함께 다뤄야 하는 모바일 팀, 인증서와 캐시를 통제해야 하는 기업 개발팀을 위한 안내서입니다.
마지막 업데이트: 2026년 9월 17일. Apple 개발자 페이지, Xcode 시스템 요구 사항, Xcode 구성 요소 문서를 기준으로 확인했습니다. Xcode 27.1 베타, 출시 후보, 정식 버전이 공개되면 설치 명령과 시스템 조건을 다시 검증해야 합니다.
시작 전에 고정해야 할 안정 기준
Apple은 iPhone Duo가 iOS 27.1을 사용하고 Xcode 27.1에 관련 SDK, 시뮬레이터, 자세와 방향 지원이 들어간다고 안내하고 있습니다. 다만 Apple의 iPhone Duo 개발 준비 페이지에는 베타가 2026년 9월에 나중에 제공될 예정이라고 표시되어 있습니다. 따라서 아직 공개되지 않은 설치 패키지의 시스템 조건이나 시뮬레이터 동작을 이미 확인한 사실처럼 다루면 안 됩니다.
공식 정보는 Apple의 iPhone Duo 개발 준비 안내와 Xcode 시스템 요구 사항에서 다시 확인해야 합니다.
업그레이드 전에 현재 배포 성공 상태를 하나의 기준점으로 저장하십시오.
- 사용 중인 Xcode 버전과 선택된 개발자 경로를 기록합니다.
- SDK, 패키지 관리자, 외부 의존성의 잠금 파일을 보관합니다.
- 배포 인증서, 프로비저닝 프로필, 서명 권한의 소유자와 만료 상태를 적습니다.
- 실제 배포에 사용한 빌드 명령과 테스트 플랜을 저장합니다.
- 아카이브 파일의 해시와 배포 가능 여부를 기록합니다.
- DerivedData와 패키지 캐시를 삭제하지 말고 기준점으로 보존합니다.
Xcode 27.1 공개 전에 무엇을 준비할 수 있습니까?
지금 할 수 있는 일은 새 시뮬레이터를 미리 설치하는 것이 아닙니다. 현재 프로젝트의 재현 가능한 빌드 절차, 서명 상태, 테스트 명령, 결과 비교 방식을 고정하는 일입니다. 새 도구가 실패했을 때 프로젝트 변경과 도구 변경을 분리하려면 이 기준이 먼저 있어야 합니다.
예시로 현재 채널의 선택 경로를 기록합니다.
xcode-select -p
xcodebuild -version
xcodebuild -workspace App.xcworkspace \
-scheme App \
-showBuildSettings
이 명령은 특정 Xcode 27.1 동작을 보장하는 절차가 아닙니다. 현재 환경의 기록을 남기는 용도입니다. 명령 줄 도구의 선택과 설치 방식은 Apple의 명령 줄 도구 문서를 기준으로 확인하십시오.
공개 당일에는 격리된 검증 채널을 만드십시오
테스트용 Xcode를 기존 앱 폴더에 덮어쓰면 문제가 생겼을 때 원인을 찾기 어렵습니다. 프로젝트 파일이 바뀌지 않아도 다음 영역이 서로 섞일 수 있습니다.
- 개발자 경로와 명령 줄 도구 선택
- DerivedData와 모듈 캐시
- 패키지 관리자 캐시
- 키체인 접근 권한
- 서명 인증서와 프로필
- CI 실행 노드의 이미지와 환경 변수
한 대의 맥에서 Xcode 27과 Xcode 27.1을 함께 관리할 수는 있습니다. 단, 앱 위치와 캐시, 명령 줄 도구 경로를 분리해야 합니다. 유일한 배포 장비에서 이 작업을 시작하는 것은 권하지 않습니다.
| 선택지 | 적합한 경우 | 분리해야 할 영역 | 되돌리기 난이도 |
|---|---|---|---|
| 별도 시스템 볼륨 | 한 대의 맥을 계속 써야 하고 디스크 분리가 가능한 경우 | 사용자 영역, 개발자 경로, 캐시, 키체인 | 중간 |
| 독립된 맥 | 인증서와 CI 권한까지 완전히 나눠야 하는 경우 | 시스템, 사용자 계정, 서명 권한, 캐시 | 낮음 |
| 임시 클라우드 맥 | 단기 적응, 베타 확인, 실행 노드 추가가 목적일 때 | 실행 이미지, 계정 권한, 네트워크, 캐시 | 낮음 |
| 기존 배포 맥에 덮어쓰기 | 원칙적으로 피해야 하는 방식 | 분리가 거의 되지 않음 | 높음 |
설치 후에는 다음 값을 별도로 정하십시오.
export DEVELOPER_DIR="/Applications/Xcode-27.1.app/Contents/Developer"
export DERIVED_DATA_PATH="$HOME/Library/Developer/Xcode/DerivedData-duo-validation"
실제 앱 이름과 경로는 공개된 설치 패키지에 맞춰 바꿔야 합니다. 설치 경로가 확인되기 전에는 위 값을 운영 명령으로 복사하지 마십시오. 추가 시뮬레이터와 플랫폼 구성 요소는 Apple의 추가 Xcode 구성 요소 설치 안내에서 제공 범위를 확인한 뒤 설치하십시오.
테스트 iPhone Duo가 기존 Xcode 프로젝트에 영향을 줍니까?
시뮬레이터를 추가하는 행위 자체보다 공용 캐시와 빌드 경로가 더 큰 위험입니다. 같은 프로젝트를 사용하더라도 검증 채널의 DerivedData, 패키지 캐시, 서명 계정, CI 작업 디렉터리를 안정 채널과 분리하면 영향 범위를 줄일 수 있습니다. 반대로 같은 캐시를 공유하면 모듈 재생성, 패키지 해석, 빌드 설정 차이가 안정 빌드에 섞일 수 있습니다.
첫 한 시간은 전체 회귀보다 도구 체인 점검에 씁니다
Xcode 27.1을 설치한 뒤 곧바로 모든 UI 조합을 돌리지 마십시오. 먼저 같은 커밋을 안정 채널과 검증 채널에서 각각 실행하십시오. 순서는 다음과 같습니다.
- 저장소를 새 작업 디렉터리에 받습니다.
- 잠금 파일을 기준으로 패키지를 해석합니다.
- 기본 앱 타깃을 컴파일합니다.
- 공통 단위 테스트를 실행합니다.
- 배포용 아카이브를 생성합니다.
- 결과물 서명과 설치 가능 여부를 확인합니다.
비교할 값은 성공 여부 하나가 아닙니다. 오류가 발생한 단계, 사용된 SDK, 패키지 해석 결과, 경고 목록, 아카이브의 서명 상태를 함께 저장하십시오.
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-destination 'generic/platform=iOS' \
-derivedDataPath "$DERIVED_DATA_PATH" \
clean build
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-destination 'platform=iOS Simulator,name=검증용 시뮬레이터' \
test
시뮬레이터 이름은 Apple이 실제로 제공하는 목록에 맞춰야 합니다. 베타 공개 전에는 이름과 지원 동작을 임의로 적어 두지 마십시오. 시뮬레이터와 물리 기기의 차이는 Apple의 시뮬레이터 및 물리 기기 테스트 문서에서 확인할 수 있습니다.
실패 원인은 세 가지로 분류하십시오.
- 프로젝트 문제: 두 채널에서 같은 오류가 발생합니다.
- 테스트 버전 문제: 검증 채널에서만 컴파일이나 테스트가 실패합니다.
- 환경 문제: 경로, 인증서, 캐시, 계정 권한 차이로 실패합니다.
이 분류를 하지 않으면 프로젝트 수정으로 해결할 문제와 Xcode 되돌리기로 해결할 문제가 섞입니다.
CI는 기존 iPhone 18 Pro 기준을 차단선으로 유지합니다
첫 번째 CI 변경은 새로운 장치 이름을 추가하는 일이 아닙니다. 안정 채널과 검증 채널을 분리하는 일입니다. 기존 Xcode 27 채널은 병합 요청과 정식 배포를 계속 담당해야 합니다. iPhone Duo 적응이 일반 수정의 대기 시간을 늘려서는 안 됩니다.
| 검사 영역 | 안정 채널 | iPhone Duo 검증 채널 | 병합 차단 여부 |
|---|---|---|---|
| 공통 단위 테스트 | 실행 | 실행 | 기존 정책 유지 |
| iPhone 18 Pro 회귀 | 실행 | 필요할 때 실행 | 정식 배포 기준이면 차단 |
| 외부 화면과 내부 화면 상태 | 실행하지 않음 | 실행 | 초기에는 보고 전용 가능 |
| 자세 전환과 방향 변경 | 실행하지 않음 | 실행 | 실패율 확인 뒤 결정 |
| 아카이브와 서명 | 실행 | 실행 | 배포 브랜치에서는 차단 |
| 실기기 카메라 확인 | 별도 절차 | 별도 절차 | 시뮬레이터 결과로 대체하지 않음 |
Xcode의 테스트 플랜을 이용하면 공통 테스트, 기존 기기 회귀, iPhone Duo 전용 테스트를 나눌 수 있습니다. 테스트 플랜을 여러 묶음으로 구성하는 방법은 Apple의 테스트 플랜 안내를 기준으로 설계하십시오.
초기에는 다음처럼 운영하는 편이 좋습니다.
- 공통 단위 테스트와 서명 검사는 병합을 차단합니다.
- iPhone 18 Pro 회귀는 기존 차단 정책을 유지합니다.
- iPhone Duo의 자세 전환 테스트는 먼저 보고 전용으로 수집합니다.
- 검증 채널의 아카이브는 배포하지 않고 서명과 설치 가능 여부만 확인합니다.
- 같은 커밋의 두 결과를 보존해 오류가 새 도구에서만 생겼는지 비교합니다.
iPhone Duo 시뮬레이터는 로컬과 독립 CI 중 어디에 두는 편이 좋습니까?
로컬은 짧은 반복 개발과 화면 상태 확인에 적합합니다. 독립 CI는 같은 커밋을 반복하고 결과를 보존하는 데 적합합니다. 팀원이 한 명이고 적응 기간이 짧다면 격리된 로컬 맥으로 시작할 수 있습니다. 여러 브랜치가 동시에 실행되거나 안정 빌드가 중요한 팀이라면 iPhone Duo 검증을 독립 CI로 보내는 편이 낫습니다.
시뮬레이터가 제공하는 범위와 실기기 영역을 나눕니다
Apple은 iPhone Duo 개발 준비 페이지에서 SDK와 시뮬레이터, 자세와 방향 지원을 안내하고 있습니다. 그러나 실제 공개 버전의 지원 범위는 베타나 정식 구성 요소가 나온 뒤 다시 확인해야 합니다.
시뮬레이터에서 자동화할 대상은 다음과 같습니다.
- 외부 화면과 내부 화면에서의 레이아웃 제약
- 세로와 가로 방향 전환
- 화면 상태 복원
- 앱 중단 뒤 재실행
- 화면 크기 변화에 따른 접근성 레이아웃
- 화면 전환 중 데이터 보존
실기기로 남겨야 할 대상도 있습니다.
- 힌지 주변의 터치 감각
- 실제 카메라 미리 보기와 센서 전환
- 통화나 알림이 들어온 뒤의 화면 전환
- 장시간 사용 중 발열과 배터리 영향
- 케이블 연결과 물리 버튼 동작
Apple의 베타 운영 체제 테스트 안내는 베타 환경을 안정 배포 환경과 분리해 다뤄야 하는 이유를 설명합니다. 시뮬레이터가 통과했다는 이유로 실기기 검증을 생략하지 마십시오.
첫 주에는 실행 대기와 실패율을 보고 확장합니다
검증 채널을 만든 직후 실행 노드를 늘리면 병목 원인을 놓칠 수 있습니다. 먼저 작업별 대기 시간, 동시 실행 충돌, 캐시 적중 여부, 재실행 횟수를 수집하십시오. 이 값은 특정 장비의 성능을 과장하기 위한 자료가 아니라 추가 자원이 필요한지 판단하는 운영 자료입니다.
다음 기준으로 선택하십시오.
- 안정 채널이 밀리지 않고 검증 작업도 짧은 시간 안에 끝나면 이중 트랙을 유지합니다.
- 검증 작업이 안정 채널의 실행 슬롯을 빼앗으면 독립 맥 실행 노드를 추가합니다.
- 실패가 캐시와 서명 충돌에서 반복되면 노드 확장보다 권한과 경로를 먼저 고칩니다.
- 실패가 Xcode 27.1에서만 반복되고 공개된 결함으로 확인되면 안정 채널을 유지한 채 격리 기간을 연장합니다.
- 두 채널의 결과가 충분히 일치하고 공식 버전이 배포되면 통합 여부를 다시 검토합니다.
되돌리기는 다음 순서로 문서화하십시오.
- CI의 검증 채널을 중지합니다.
- 안정 채널의 Xcode 선택 경로를 복원합니다.
- 검증용 캐시와 작업 디렉터리를 안정 채널과 분리해 보존합니다.
- 기존 Xcode 27 기준 커밋으로 재빌드합니다.
- 서명, 아카이브, iPhone 18 Pro 회귀 결과를 확인합니다.
- 실패 원인과 복구 시각을 버전 잠금표에 기록합니다.
이 절차를 미리 저장하면 테스트 버전 빌드가 실패했을 때 프로젝트를 되돌리는 실수를 피할 수 있습니다. 배포용 결과를 확인하는 기준은 Apple의 출시 빌드 테스트 안내와 현재 팀의 배포 기록을 함께 사용하십시오.
안정 채널을 그대로 유지하고 검증 채널만 별도 맥에서 운영하면 기존 환경은 유지됩니다. 반대로 하나의 생산 맥에 Xcode 27.1을 덮어쓰면 캐시, 서명 권한, CI 경로가 동시에 흔들립니다. 장기적으로 항상 무거운 빌드를 돌리는 팀이라면 전용 장비가 더 맞을 수 있지만, 단기 적응이나 공개 직후의 검증이라면 독립된 맥을 임시로 추가하는 편이 비용과 되돌리기 위험을 함께 관리하기 쉽습니다.
특히 현재 방식이 단일 맥에 모든 Xcode와 인증서를 몰아넣고, 공용 캐시를 사용하며, 테스트 버전 실패 때 전체 배포를 멈춰야 한다면 iPhone Duo 대응에는 적합하지 않습니다. 이 경우 먼저 안정 기준을 얼린 뒤 vmzig의 맥 렌탈 환경을 임시 검증 노드로 검토해 보십시오. 예상 적응 기간이 끝난 뒤 계속 필요한지 판단하면 되며, 장기 고정 부하나 물리 인터페이스가 핵심인 작업이라면 직접 보유한 맥이 더 알맞습니다.
vmzig M4 원격 노드
새로운 빌드 환경은 vmzig로 안전하게 시작하세요
vmzig 원격 맥으로 기존 빌드 환경을 유지하면서 새로운 엑스코드 환경을 별도로 검증할 수 있습니다.