아카이브 및 내보내기
.xcarchive, 내보내기 설정, dSYM을 보관하세요. 내보내기 전에 Release 설정, 버전 번호, 빌드 번호를 확인하세요. 충돌 분석에 필요한 심볼 파일을 버리고 최종 .ipa만 남기지 마세요.
확인 기준: 결과물을 하나의 커밋 및 빌드 번호와 연결할 수 있어야 합니다.
여러 대의 전용 물리 Mac으로 iOS 빌드 팜을 구성하세요. scheme별 작업을 macOS 러너에 분배해 아카이브, 코드 서명, TestFlight 업로드를 각각 처리하면 모든 작업이 한 대의 업무용 컴퓨터에 몰리지 않습니다.
ArmRDP는 가상 머신이 아닌 Mac mini 한 대 전체를 제공합니다. 3가지 구성과 5개 리전, 하루 $21.1부터 이용할 수 있습니다. 먼저 파이프라인 하나를 옮겨 실행한 뒤 실제 대기열에 맞춰 확장하세요.
야간 배포를 하려면 러너, 코드 서명, 업로드 설정을 먼저 완료해야 합니다. 배포 시간은 프로젝트, 의존성, 작업 대기열에 따라 달라집니다.
scheme별로 작업을 분리하고, 노드별로 결과물을 모으세요.
클라우드 Mac을 GitLab 또는 GitHub Actions의 macOS 셀프 호스팅 러너로 등록하세요. 저장소는 기존 팀 방식대로 관리하고, macOS가 필요한 job만 이 물리 노드로 보내면 됩니다.
Xcode 전체 버전, SDK, 명령줄 도구 경로, 의존성 잠금 파일을 기록하세요. xcodes로 여러 Xcode 버전을 관리하고 각 job에 DEVELOPER_DIR을 지정해 프로젝트 간 전역 설정 충돌을 방지하세요.
러너 태그에는 macos, xcode-pinned, ios-release처럼 운영체제, 툴체인, 용도를 표시하세요. 릴리스 작업은 신뢰할 수 있는 러너에만 배정하고, 검토되지 않은 브랜치가 서명 자료가 있는 실행 환경에 접근하지 못하게 하세요.
처음에는 각 머신에서 무거운 빌드 작업 하나만 실행하세요. 클린 빌드, 캐시 적중률, 메모리 압박, 디스크 사용량을 살펴본 뒤 동시 실행을 늘릴지 노드를 추가할지 결정하세요. 머신 수뿐 아니라 캐시와 작업 분할도 대기열에 영향을 줍니다.
xcodebuild -version
xcode-select -p
xcrun --sdk iphoneos --show-sdk-version
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-configuration Release \
-archivePath artifacts/App.xcarchive \
archive
App 워크스페이스와 scheme을 프로젝트의 실제 이름으로 바꾸세요. 아카이브 결과물, 빌드 로그, 테스트 결과는 job별로 따로 저장하고 두 작업이 같은 출력 디렉터리에 쓰지 않도록 하세요.
App Store 출시를 위해 빌드 결과물을 해당 커밋, 툴체인, 서명 설정과 연결하세요. 클라우드 Mac은 실행 환경을 제공하고, 릴리스 권한과 심사 자료는 팀에서 계속 관리합니다.
.xcarchive, 내보내기 설정, dSYM을 보관하세요. 내보내기 전에 Release 설정, 버전 번호, 빌드 번호를 확인하세요. 충돌 분석에 필요한 심볼 파일을 버리고 최종 .ipa만 남기지 마세요.
확인 기준: 결과물을 하나의 커밋 및 빌드 번호와 연결할 수 있어야 합니다.
관리된 방식으로 배포 인증서와 프로비저닝 프로파일을 가져오고, 빌드 작업마다 별도의 Keychain을 사용하세요. fastlane match를 사용한다면 저장소 접근 권한을 제한하고 복호화 자료는 스크립트에 쓰지 말고 CI 시크릿 저장소에 보관하세요.
확인 기준: 비대화형 작업에서 codesign을 완료할 수 있어야 합니다.
팀에서 승인한 업로드 인증 정보를 사용해 결과물을 제출하세요. 그래픽 인터페이스에서 시뮬레이터 화면을 확인하고 심사 자료를 만든 뒤 대상 기기, 언어, 버전을 점검하세요. 업로드 완료와 심사 통과는 서로 다른 단계입니다.
확인 기준: 업로드 결과, 자료, 로그를 함께 보관해야 합니다.
릴리스 job은 실행 브랜치와 작업자를 제한해야 합니다. 인증서 만료, 프로비저닝 프로파일 불일치, 업로드 권한 부족은 로그에 따라 각각 해결해야 하며, 머신 사양을 높여도 해결되지 않습니다.
전용 물리 노드에서 macOS를 기본 환경으로 실행하며, 관련 개발 작업에 Metal과 시뮬레이터를 사용할 수 있습니다. SSH는 스크립트와 로그에, VNC 화면 공유는 Xcode, 시뮬레이터, UI 확인에 활용하세요. 각각 잘하는 작업에 맞춰 사용하면 됩니다.
고정 버전 컴파일, 자동화 테스트, 시뮬레이터 스크린샷, 의존성 설치는 로컬 업무용 컴퓨터 없이 실행할 수 있습니다. UI를 살펴봐야 한다면 그래픽 인터페이스에서 먼저 재현한 다음 반복 가능한 절차를 스크립트로 옮기세요.
대상 시스템, 시뮬레이터 런타임, Xcode 버전이 서로 호환되는지 먼저 확인하세요.
원격 화면의 반응 속도는 네트워크 경로, 해상도, 인코딩 설정에 따라 달라지며 로컬 모니터와 같지 않습니다. 외부 기기, 특정 주변기기, 빠른 상호작용이 필요한 작업은 실제 작업을 하루 동안 실행해 본 뒤 마이그레이션 여부를 결정하세요.
ArmRDP M4 Pro는 M4 Pro, 통합 메모리 64GB, SSD 2TB를 갖췄습니다. 전용 환경에서 로컬 모델 로드, 양자화 버전 비교, 추론 API 검증을 수행한 뒤 추가 투자가 필요한지 판단할 수 있습니다.
모델 파일 크기가 필요한 메모리 용량과 같지는 않습니다. 가중치 외에도 KV 캐시, 컨텍스트 길이, 실행 프레임워크, 다른 프로세스의 메모리를 고려해야 합니다. 대상 모델의 짧은 컨텍스트부터 시작해 최대 메모리와 메모리 압박을 기록하고 요청량을 점차 늘리세요.
Apple Silicon을 지원하는 추론 프레임워크를 사용하고, 개별 연산자와 모델 형식의 호환성을 확인하세요. 통합 메모리가 모든 모델의 실행을 보장하거나 생성 속도를 바로 예측해 주는 것은 아닙니다. 실제 프롬프트, 컨텍스트, 출력 길이로 검증하세요.
메모리 경합으로 결과가 달라지지 않도록 추론 실험은 프로덕션 릴리스 빌드와 별도로 배정하세요. 원격 API에는 인증과 접근 제한을 적용하고 포트를 공개 상태로 열지 마세요.
처음부터 전체 릴리스 시스템을 옮기지 마세요. 의존성이 명확하고 로컬에서 안정적으로 빌드되는 scheme 하나를 고르고, 로컬 결과를 기준으로 삼아 아래 세 가지 검증 단계를 차례대로 완료하세요.
읽기 전용 또는 최소 권한 인증 정보로 저장소를 가져오고, 서브모듈, 비공개 의존성, 대용량 파일을 확인하세요. 인증서, 프로비저닝 프로파일, 복호화 키는 각각 별도로 관리하고 민감한 파일을 저장소에 커밋하지 마세요.
통과 조건: 같은 커밋의 데이터와 의존성을 모두 갖춰야 합니다.
xcodes로 프로젝트에 필요한 Xcode를 설치하고 버전을 고정하세요. Homebrew 의존성 목록과 패키지 관리자 잠금 파일을 보관하고, 대상 시뮬레이터 런타임을 추가해 환경 변수와 실행 경로를 기록하세요.
통과 조건: 수동 실행으로 예상한 결과물을 만들 수 있어야 합니다.
러너를 등록하고 태그와 저장소 권한을 설정한 뒤 첫 파이프라인을 클라우드 Mac으로 보내세요. 성공하면 서명과 업로드 단계를 추가하고, 마지막으로 다른 scheme과 독립 노드로 확장하세요.
통과 조건: 무인 작업을 반복해서 완료할 수 있어야 합니다.
마이그레이션 기간에는 클린 빌드, 서명, 업로드, 실패 후 재시도를 모두 검증할 때까지 기존 러너를 유지하세요. 대여 기간이 끝나기 전에 필요한 데이터를 내보내고, 노드 디스크를 유일한 보관 장소로 사용하지 마세요.
아래 추천은 일일 작업량을 기준으로 한 시작점이며 처리량 테스트나 빌드 결과를 보장하지 않습니다. 대규모 전체 빌드 한 번이 여러 번의 증분 빌드보다 작업량이 많을 수 있습니다. 개별 실행 시간, 캐시 적중률, 최대 메모리를 기록해 사양을 높일지 노드를 추가할지 결정하세요.
| 일일 작업량 기준 | 추천 시작 기종 및 사양 | 우선 확인할 항목 | 하루 단위 대여 |
|---|---|---|---|
| 1~5회 임시 검증, 단일 프로젝트 시작 |
ArmRDP M4 Base M4 / 16GB / 256GB |
아카이브와 코드 서명부터 완료하세요. 의존성 설치, DerivedData, 결과물이 디스크를 얼마나 사용하는지 확인하세요. | 하루 $21.1M4 Base 대여 |
| 6~20회 지속적 통합, 잦은 반복 작업 |
ArmRDP M4 Plus M4 / 24GB / 512GB |
컴파일과 테스트를 함께 실행할 때 메모리 압박을 확인하세요. 캐시를 먼저 최적화한 뒤 러너를 추가할지 판단하세요. | 하루 $41.4M4 Plus 대여 |
| 21회 이상 여러 타깃, 고부하 작업 평가 |
ArmRDP M4 Pro M4 Pro / 64GB / 2TB |
대규모 프로젝트나 모델 실험에 필요한 리소스를 확인하세요. 병목이 대기열이라면 독립 작업을 여러 노드에 분산하세요. | 하루 $59.5M4 Pro 대여 |
5개 리전은 싱가포르, 일본(도쿄), 대한민국(서울), 홍콩, 미국 서부이며 세 가지 기종 모두에서 이용할 수 있습니다. 그래픽 작업은 팀에서 각 노드까지의 연결 품질을 우선 비교하세요. 무인 빌드는 저장소, 의존성 다운로드, 결과물 업로드 경로도 확인해야 합니다. 실제 이용 가능 여부는 콘솔에 표시되는 실시간 정보를 확인하세요.
검증 단계에서는 하루 단위로 시작하고, 정기 릴리스 일정이 정해지면 주간·월간·분기별 가격을 비교하세요. USDT-TRC20 및 Visa / Mastercard / Amex(Stripe)를 지원하며, 모든 요금은 미국 달러로 결제됩니다. 실제 이용 가능한 결제 게이트웨이는 백엔드 응답을 확인하세요.
scheme 하나, 서명 설정 한 세트, 명확한 검증 기준을 준비하세요. 아카이브, 코드 서명, 배포까지 완료한 뒤 더 많은 작업을 위해 노드를 추가하세요.