연결부터 첫 아카이브까지

빌드 Mac에 연결하기

SSH와 VNC 접속 정보가 함께 제공됩니다. 명령줄에서 빌드하고 원격 데스크톱에서 서명을 확인하세요. 가상 머신이 아닌 전용 물리 Mac 전체를 단독으로 사용합니다.

이미 노드를 사용 중인가요? 먼저 주소, SSH 포트, 사용자 이름, 데스크톱 연결 방식을 기록한 다음 아래 단계를 진행하세요.

먼저 SSH에 연결하고 자동화로 확장하세요

로컬 터미널에서 키를 생성하고 공개 키를 클라우드 사용자 계정에 등록한 뒤 노드에 고정 별칭을 지정하세요. 이후 rsync, Fastlane, 러너에서도 같은 연결을 사용합니다.

다음 주소 192.0.2.10 는 문서용 예시이며,macbuild 는 예시 사용자 이름,22 는 예시 SSH 포트입니다. 모두 콘솔에서 제공된 값으로 바꾸세요. 개인 키, 비밀번호, 전체 접속 정보를 지원 티켓에 붙여 넣지 마세요.

  1. 01

    빌드 전용 키 생성

    로컬에서 실행하세요. 별도 파일을 사용하면 기존 기본 키를 덮어쓰지 않고 권한을 취소하기도 쉽습니다. 안내에 따라 암호를 설정하세요. 자동화 환경에서는 개인 키를 저장소에 넣지 말고 관리되는 키 보관 방식을 통해 접근 권한을 제공하세요.

    ssh-keygen -t ed25519 -f ~/.ssh/xcr_build -C "xcr-build"
    ssh-add ~/.ssh/xcr_build
    ls -l ~/.ssh/xcr_build.pub

    확장자가 .pub 인 파일은 공개 키이므로 노드에 등록할 수 있습니다. 확장자가 없는 파일은 개인 키이므로 로컬 또는 통제된 CI 키 저장소에만 보관하세요.

  2. 02

    공개 키를 등록하고 호스트 신원 확인

    로컬에 ssh-copy-id 가 설치되어 있다면 제공된 사용자 이름과 포트를 사용해 공개 키를 등록하세요. 처음 연결할 때 호스트 지문이 표시됩니다. 제공된 정보와 대조하고, 신뢰할 수 있는 지문이 없다면 콘솔 티켓으로 확인하세요. 검증을 건너뛰지 마세요.

    ssh-copy-id -i ~/.ssh/xcr_build.pub -p 22 macbuild@192.0.2.10
    ssh -i ~/.ssh/xcr_build -p 22 macbuild@192.0.2.10

    macOS 로컬 환경에는 ssh-copy-id가 기본으로 설치되어 있지 않을 수 있습니다. 제공된 설정에서 비밀번호 로그인을 허용한다면 아래의 표준 SSH 명령을 사용할 수 있습니다. 키 인증만 허용하는 경우에는 제공된 절차에 따라 공개 키를 등록하고, 비밀번호 로그인을 반복해서 시도하지 마세요.

    cat ~/.ssh/xcr_build.pub | ssh -p 22 macbuild@192.0.2.10 \
    'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys'

    노드를 재설치한 후 호스트 키가 바뀌었다는 알림이 표시되면 재설치 기록과 새 지문을 먼저 확인한 뒤 로컬 기록을 업데이트하세요. 호스트 확인을 끄는 옵션으로 이상을 숨기지 마세요.

  3. 03

    연결 별칭을 설정하고 확인하기

    아래 설정을 로컬의 ~/.ssh/config에 추가하세요. 별칭을 사용하면 노드 주소를 외울 필요가 없습니다. 주소가 바뀌면 이곳만 수정하면 되며, 스크립트에서는 계속 xcr-build를 사용하면 됩니다.

    Host xcr-build
        HostName 192.0.2.10
        User macbuild
        Port 22
        IdentityFile ~/.ssh/xcr_build
        IdentitiesOnly yes
        ServerAliveInterval 30
        ServerAliveCountMax 3

    먼저 읽기 전용으로 환경을 확인하고 실제 시스템 버전, 선택된 Xcode, 디스크 여유 공간을 점검하세요. 환경이 올바른지 확인한 다음 종속성을 설치하거나 러너를 등록해야 잘못된 버전이 파이프라인에 들어가는 일을 막을 수 있습니다.

    ssh xcr-build
    sw_vers
    xcode-select -p
    xcodebuild -version
    df -h "$HOME"

VNC를 열고 그래픽 인터페이스에서 마지막 항목을 확인하세요

서명 인증서를 처음 설정하거나 키체인 권한을 확인하고 Xcode 설정을 살펴볼 때는 원격 데스크톱이 명령을 추측하며 반복하는 것보다 빠릅니다. 점검을 마치면 안정적으로 재현할 수 있는 단계는 다시 명령줄에서 처리하세요.

macOS 화면 공유로 연결

로컬 Mac에서 화면 공유를 열고 제공된 안내에 따라 데스크톱 주소와 포트를 입력하세요. Finder에서 ‘이동 → 서버에 연결’을 선택해 제공된 VNC 주소를 입력해도 됩니다.

데스크톱 접속 정보와 SSH 접속 정보는 다를 수 있습니다. 콘솔에 표시된 해당 항목을 사용하고, SSH 키 파일을 VNC 비밀번호로 입력하지 마세요.

호환 클라이언트 또는 SSH 터널 사용

다른 시스템에서는 제공된 인증 방식을 지원하는 VNC 클라이언트를 사용하세요. 호스트, 포트, 인증 정보를 입력하고 공개 네트워크에 데스크톱 서비스를 직접 열지 마세요.

제공된 안내에서 SSH를 통해 노드의 로컬 VNC 서비스에 접근할 수 있다면 터널을 설정할 수 있습니다. 아래 예시는 원격 서비스가 127.0.0.1:5900 에서 수신 대기하는 경우에만 사용할 수 있습니다. 실제 포트는 제공된 값을 따르세요.

ssh -N -o ExitOnForwardFailure=yes \
-L 127.0.0.1:5901:127.0.0.1:5900 xcr-build

터미널 세션을 열어 둔 상태에서 로컬 VNC 클라이언트를 127.0.0.1:5901에 연결하세요. 로컬 포트는 루프백 주소에만 바인딩됩니다. 데스크톱 세션을 마치면 Control-C를 눌러 터널을 닫으세요.

데스크톱에서 세 가지만 확인하세요

Xcode가 실행되고 예상한 버전이 선택되어 있는지 확인하세요. 빌드 사용자에게 서명 인증서와 개인 키 접근 권한이 있는지 점검하세요. 프로비저닝 프로파일의 Bundle Identifier, Team, 내보내기 방식이 프로젝트 설정과 일치하는지도 확인하세요. 스크린샷에 인증서 비밀번호가 보이지 않도록 주의하세요.

재현 가능한 빌드 환경 만들기

로컬 Mac에서 클라우드 Mac으로

데이터, 툴체인, CI 연결 순서로 이전하세요. 동일한 소스 커밋에서 수동 아카이브를 한 번 완료한 뒤 러너에 맡기세요. Xcode, 종속성 버전, 서명 정책을 한꺼번에 바꾸지 마세요.

01 / 데이터

소스 동기화, 캐시는 필요한 경우에만

소스 코드와 잠금 파일을 별도의 작업 디렉터리에 두세요. 먼저 rsync 미리 보기로 대상 경로를 확인하세요. 사용자 홈 디렉터리 전체를 그대로 동기화하거나 인증서, 개인 키, 로컬 환경 파일까지 기본적으로 업로드하지 마세요.

DerivedData는 다시 만들 수 있는 캐시입니다. Xcode 버전, 종속성, 소스 환경이 호환될 때만 재사용하세요. 경로 또는 모듈 캐시에 문제가 있으면 먼저 캐시를 지우고 새로 빌드하세요.

02 / 툴체인

Xcode·종속성·서명 환경 맞추기

다음을 사용해 xcode-select -p 및 xcodebuild -version 버전을 확인하세요. 전환할 때는 노드에 실제로 설치된 Xcode 경로를 사용한 다음 프로젝트에서 요구하는 SDK를 확인하세요.

Podfile.lock, Package.resolved, Gemfile.lock을 보존하세요. 프로젝트에서 고정한 환경에 맞춰 CocoaPods, SPM, Fastlane을 실행하세요. 인증서와 프로비저닝 프로파일은 별도로 가져오고 개인 키 접근 권한을 확인하세요.

03 / CI 연결

러너 등록 및 작업 스케줄 제한

GitHub 또는 GitLab 프로젝트에서 자체 호스팅 러너 등록 정보를 만든 다음 각 플랫폼에서 안내하는 macOS 설치 절차를 따르세요. 등록 토큰은 관리되는 설정에만 사용하고 저장소나 빌드 로그에 기록하지 마세요.

러너에 용도와 툴체인을 나타내는 레이블을 지정하세요. 예를 들어 macos와ios-build를 사용할 수 있습니다. 처음에는 신뢰할 수 있는 브랜치만 서명 작업을 실행하도록 하고 동시 실행 수를 제한하세요. 이후 메모리, 디스크, 작업 로그를 바탕으로 조정하세요.

디렉터리 동기화를 미리 확인한 뒤 전송하세요

rsync -avzn --exclude '.env' --exclude '.env.*' \
--exclude 'DerivedData/' ./MyApp/ xcr-build:~/builds/MyApp/

rsync -avz --exclude '.env' --exclude '.env.*' \
--exclude 'DerivedData/' ./MyApp/ xcr-build:~/builds/MyApp/

첫 번째 명령에는 -n이 포함되어 변경 계획만 표시합니다. 확인한 후 두 번째 명령을 실행하세요. 예시에서는 --delete를 사용하지 않아 첫 이전 때 원격 파일이 실수로 삭제되지 않도록 했습니다. 프로젝트에 별도의 키 디렉터리가 있다면 먼저 제외 규칙을 추가하세요.

인수인계 기록으로 이전 마무리

소스 커밋, Xcode 버전, 종속성 잠금 파일, Scheme, 내보내기 설정, 러너 레이블, 아티팩트 경로를 기록하세요. 캐시 복사 여부를 정하기 전에 콜드 빌드와 증분 빌드를 각각 확인하세요. 이 페이지의 예시 명령은 성능 테스트가 아니며 특정 빌드 시간을 보장하지 않습니다.

연결할 때 알아두면 좋은 용어 여섯 가지

문제가 발생하면 연결 프로토콜, 실행 환경, 빌드 캐시를 구분하세요. “기기에 연결할 수 없음”이라고만 하기보다 어느 계층에서 실패했는지 정확히 설명하면 문제를 더 쉽게 해결할 수 있습니다.

물리 노드
macOS를 직접 실행하는 전용 물리 Mac입니다. 가상 머신이 아니며, 노드의 칩, 메모리, 디스크 사양은 선택한 플랜에 해당합니다. 한 노드 전체를 한 고객에게만 할당합니다.
VNC
그래픽 데스크톱을 원격으로 보고 조작하는 프로토콜입니다. 시각적 설정이나 서명을 확인할 때 유용합니다. 인증 방식, 포트, 접속 경로는 제공된 정보를 따르세요.
SSH 터널
SSH 세션을 통해 로컬 포트를 원격 서비스로 전달하는 방식입니다. 위 예시에서는 인증된 SSH 연결을 통해 VNC 트래픽을 전송합니다. 터널을 닫으면 데스크톱 연결도 끊깁니다.
자체 호스팅 러너
팀이 직접 관리하는 CI 작업 실행기입니다. 프로젝트에 등록하면 레이블이나 러너 조건에 따라 파이프라인 작업이 해당 Mac에서 실행됩니다. 전용 노드를 사용하더라도 동시 작업 수와 권한은 직접 관리해야 합니다.
Keychain
macOS에서 인증서와 개인 키, 접근 권한을 관리하는 기능입니다. 그래픽 인터페이스에서 서명이 성공해도 비대화형 러너가 개인 키에 접근할 수 있다는 뜻은 아닙니다. 실제 빌드 사용자 계정으로 확인하세요.
DerivedData
Xcode가 중간 산출물, 인덱스, 모듈 캐시를 저장하는 디렉터리입니다. 다시 만들 수 있으므로 소스 코드 백업을 대신하지 않습니다. 버전이나 경로가 바뀌면 기존 캐시를 지워야 할 수 있습니다.

노드 선택은 데스크톱을 사용할 사람부터 고려하세요

세 가지 성능 등급에서 여섯 개 노드를 선택할 수 있습니다. 원격 데스크톱을 자주 조작한다면 주요 사용자의 위치를 우선 고려한 뒤 코드 저장소, 종속성 다운로드, 아티팩트 업로드 경로를 확인하세요. 팀의 시간대는 1차 선택에 참고할 수 있지만 실제 네트워크 테스트를 대신하지는 못합니다.

싱가포르

SG · UTC+8

주요 협업 시간이 동남아시아의 업무 시간대와 겹치는 팀에 적합합니다. 먼저 로컬에서 노드까지 데스크톱을 직접 조작해 보고 종속성 다운로드와 아티팩트 업로드도 확인하세요.

일본 · 도쿄

JP · UTC+9

일본 업무 시간대에 주로 협업하는 팀에 적합합니다. 그래픽 인터페이스 디버깅이 필요한 팀원이 먼저 연결을 확인하고 자동화 작업 실행 시간을 정하세요.

대한민국 · 서울

KR · UTC+9

한국 업무 시간대에 주로 일하는 개발팀에 적합합니다. 회사 네트워크에서 제공된 포트에 접속할 수 있는지, 장시간 SSH 세션이 안정적으로 유지되는지 확인하세요.

홍콩

HK · UTC+8

중국 남부 및 인근 지역과 주로 협업하는 팀에 적합합니다. 데스크톱 응답 속도, 코드 가져오기, 캐시 전송을 각각 확인하세요. ping 한 번으로 전체 연결 상태를 판단하지 마세요.

미국 동부

US-E · UTC−5 / UTC−4

북미 동부 업무 시간대에 적합하며 여러 시간대가 함께 일하는 팀의 후보가 될 수 있습니다. 서머타임을 적용하므로 작업 인수인계 시 시간만 적지 말고 시간대도 명시하세요.

미국 서부

US-W · UTC−8 / UTC−7

북미 서부 업무 시간대에 적합합니다. 여러 시간대에 걸친 팀은 한쪽의 야간 아카이브를 다른 쪽의 주간 커밋에 이어서 실행할 수 있지만, 서명 작업의 동시 실행은 계속 제한해야 합니다.

노드는 연중 365일 정상 운영됩니다. 실제 사용 가능 여부는 콘솔에서 실시간으로 확인하세요. 연결 문제를 문의할 때는 콘솔 티켓에 노드, 모델, 사용 프로토콜, 오류 원문, 재현 단계를 적으세요. 접속 정보만 가리고 문제를 파악하는 데 필요한 오류 내용은 삭제하지 마세요.

접속 정보만 있으면 5분 안에 연결

첫 연결을 위한 작업 목표로 5분을 잡아 보세요. 호스트를 확인하고 SSH를 검증한 뒤 데스크톱을 여세요. 네트워크와 인증 설정을 확인한 다음 빌드 환경을 이전하면 됩니다. 전체 파이프라인 검수에는 프로젝트별로 별도 일정을 잡아야 합니다.

하루 $21.7부터 대여할 수 있습니다. 결제는 USDT-TRC20 및 Visa / Mastercard / Amex(Stripe)만 지원하며 미국 달러로 청구됩니다. 실제로 이용할 수 있는 결제 게이트웨이는 백엔드 응답에 따라 달라집니다.