기기 신원을 확인한 후 작업을 시작하세요
일회성 전달 정보를 수령하고 리전, 주소와 호스트 지문을 확인한 뒤 최초 비밀번호를 변경하고 로컬 확인 기록을 보관하세요.
개념만 설명하는 문서가 아니라 항목별로 실행할 수 있는 절차를 제공합니다. 먼저 전용 물리 Mac의 기기 신원 확인과 보안 설정을 완료한 다음 Xcode, 서명 자료와 자동화 작업을 준비하세요. 문제가 발생하면 동일한 기준으로 네트워크 출력과 빌드 로그를 수집하세요.
명령어, 도구 또는 증상을 입력하세요. 예: “호스트 지문”, “Archive”, “DNS”, “비밀번호”. 주제로 범위를 좁힐 수도 있습니다. 필터는 아래 가이드 카드에만 적용되며 전체 절차를 숨기지는 않습니다.
일회성 전달 정보를 수령하고 리전, 주소와 호스트 지문을 확인한 뒤 최초 비밀번호를 변경하고 로컬 확인 기록을 보관하세요.
Xcode와 명령줄 도구 경로를 확인하고, 서명 키체인을 분리하며 소스 코드, 캐시, 아카이브와 내보내기 디렉터리를 구분하세요.
코드 버전을 고정하고 캐시를 복원한 뒤 서명을 탑재하고 아카이브와 산출물을 내보내세요. 마지막으로 파일과 로그를 기계 판독 방식으로 검증합니다.
연결성, 경로, 이름 확인과 대상 포트를 각각 점검하세요. 단 한 번의 ping이나 잘린 로그로 전체 진단 자료를 대신하지 마세요.
최초 로그인 즉시 비밀번호를 변경하고 원격에서 자리를 비우기 전 그래픽 세션을 잠그세요. 티켓을 제출하기 전에 키, 토큰과 서명 자료를 제거하세요.
검색어를 짧게 줄이거나 “전체”로 전환하세요. 특정 주문이나 노드와 관련된 문제라면 콘솔에 로그인해 시간과 전체 로그가 포함된 티켓을 제출하세요.
RunnerVM은 가상 머신이 아닌 전용 물리 Mac mini를 제공합니다. 최초 작업의 핵심은 명령어를 서둘러 실행하는 것이 아니라 주문에 해당하는 기기에 연결했는지 확인하고 초기 접근 방식을 팀의 보안 설정으로 교체하는 것입니다.
주문 식별자, 노드 리전, 연결 주소, SSH 포트, VNC 매개변수와 최초 사용자 이름을 확인하세요. 전체 자격 증명을 채팅으로 전달하지 마세요. 팀에서 협업할 때는 실제 작업자에게 필요한 항목만 공유하세요.
콘솔에 표시된 호스트 지문과 최초 SSH 프롬프트를 문자 단위로 비교하세요. 알고리즘이나 다이제스트가 다르면 연결을 중지하고 티켓을 제출하세요. 로컬 known_hosts 기록을 삭제해 이상을 우회하지 마세요.
주문에 제공된 호스트, 포트와 사용자 이름으로 연결하세요. 로그인 후 먼저 sw_vers를 실행하고uname -m 과 hostname을 실행한 다음 시스템 버전, Apple Silicon 아키텍처와 기기 이름을 전달 기록에 작성하세요.
로컬 VNC 클라이언트에 콘솔에서 제공한 주소, 포트와 비밀번호를 입력하세요. 최초에는 기본 해상도로 키보드, 포인터와 창 크기 조절을 확인하고 세션이 안정적인지 확인한 후 화면 크기를 높이세요.
최초 비밀번호를 즉시 변경하고 SSH 공개 키와 관리자 권한을 점검한 뒤 작업에 필요한 접근만 남기세요. 완료 후 SSH와 VNC 세션을 다시 연결해 새 자격 증명이 유효한지 확인하고 프로젝트나 서명 자료를 가져오세요.
아래에서는 일반적인 빌드 작업 순서에 따라 SSH, xcodebuild와 fastlane 출력을 보여 줍니다. 명령어의 호스트, 작업 공간, Scheme, 내보내기 구성과 lane은 프로젝트의 실제 값으로 바꿔야 하며 모든 저장소에 그대로 적용된다고 가정해서는 안 됩니다.
$ ssh -p 22 runner@10.0.0.12
Host key fingerprint: SHA256:…
$ sw_vers
ProductName: macOS
$ uname -m
arm64
$ xcodebuild archive \
-workspace RunnerApp.xcworkspace \
-scheme RunnerApp \
-archivePath build/RunnerApp.xcarchive
** ARCHIVE SUCCEEDED **
$ bundle exec fastlane ios build
[08:42:16]: Resolving signing settings
[08:43:02]: Archive completed
[08:43:11]: Export verified
[08:43:11]: fastlane finished successfully
환경 문제는 대개 “Xcode가 열리는가”가 아니라 그래픽 인터페이스 선택, 명령줄 경로, 프로젝트 선언과 서명 컨텍스트가 일치하는지의 문제입니다. 아래 순서대로 확인하면 툴체인 문제와 프로젝트 문제를 더 빠르게 구분할 수 있습니다.
다음을 실행하세요 xcodebuild -version 및 xcode-select -p을 실행하세요. 노드에 여러 버전이 설치되어 있다면 먼저 프로젝트 요구 사항을 확인한 후 개발자 디렉터리를 전환해 그래픽 인터페이스와 자동화 작업이 서로 다른 버전을 사용하지 않도록 하세요.
다음을 실행하세요 xcrun --find xcodebuild와xcrun simctl list 를 실행하고 서명 없이 프로젝트를 한 번 해석하세요. 도구가 없거나 SDK 목록이 비정상이면 먼저 툴체인을 복구하고 프로젝트 파일을 바로 수정하지 마세요.
자동화 작업에서 사용할 인증서를 별도 키체인에 넣고 명확한 잠금 해제 절차와 최소 접근 범위를 설정하세요. 비밀번호를 저장소, 스크립트 매개변수나 빌드 로그에 기록하지 마세요.
인증서 이름, 유효 기간, 팀 식별자와 프로비저닝 프로파일 UUID를 기록하고 Bundle Identifier가 대상 구성과 일치하는지 확인하세요. 가져온 후 security find-identity -v -p codesigning 으로 사용 가능한 서명 ID를 검증하세요.
소스 코드, 종속성 캐시, DerivedData, Archive, Export와 로그를 분리하세요. 작업마다 고유한 아카이브 경로를 사용하고 공유 캐시에는 재생성 가능한 내용만 저장해 서명 자료가 캐시에 섞이지 않도록 하세요.
자동화의 목표는 로컬 스크립트를 원격으로 옮기는 것이 아니라 입력, 환경, 서명과 출력을 모두 재현 가능하게 만드는 것입니다. 각 단계는 명확한 기록을 남겨야 하며 실패 시 어느 단계에서 문제가 발생했는지 확인할 수 있어야 합니다.
계속 이동하는 브랜치 헤드에 의존하지 말고 커밋 해시나 보호된 태그를 사용하세요. 서브모듈 버전, Git LFS 상태와 저장소의 clean 상태를 기록하세요.
git checkout --detach <commit>
캐시 키에는 최소한 잠금 파일 다이제스트, 도구 버전과 아키텍처를 포함하세요. 캐시가 없으면 정상적으로 설치하고 “캐시 적중 필수”를 빌드 성공 조건으로 삼지 마세요.
bundle check || bundle install
작업 전용 키체인을 잠금 해제하고 일치하는 프로비저닝 프로파일을 가져온 뒤 사용 가능한 서명 ID를 검증하세요. 어떤 키나 비밀번호도 표준 출력에 기록해서는 안 됩니다.
security find-identity -v -p codesigning
작업 공간, Scheme, Configuration, Destination과 아카이브 경로를 명시적으로 지정하세요. 전체 로그와 xcodebuild 종료 코드를 저장하세요.
xcodebuild archive …
내보내기 구성을 버전 관리에 포함하되 비밀은 포함하지 마세요. 내보내기 디렉터리와 아카이브 디렉터리를 분리해 재실행 시 원본 xcarchive를 덮어쓰지 않도록 하세요.
xcodebuild -exportArchive …
파일 존재 여부, 크기, 다이제스트, 서명 정보와 작업 종료 코드를 확인하고 산출물 식별자를 커밋 버전, Xcode 버전 및 로그 경로와 연결하세요.
shasum -a 256 build-output
원격 데스크톱은 최초 그래픽 설정, Xcode 인터페이스 상태 확인과 시각적 확인이 필요한 작업에 적합합니다. 빌드가 계속 실행되는지는 로컬 VNC 창의 연결 유지 여부에 의존해서는 안 됩니다.
콘솔에 표시된 주소, 포트, 사용자 이름과 비밀번호를 정확히 사용하세요. 클라이언트가 연결 프로필을 지원하더라도 동기화되는 평문 파일에 비밀번호를 저장하지 마세요.
최초 연결에는 기본 크기를 사용하세요. 상호작용이 안정적인지 확인한 후 해상도를 단계적으로 높이세요. 입력 지연이 발생하면 먼저 색 심도와 화면 크기를 낮춘 다음 네트워크 경로를 확인하세요.
기기를 떠나기 전에 그래픽 세션을 잠그고 VNC 클라이언트를 닫는 것으로 화면 잠금을 대신하지 마세요. 팀 교대 시 더 이상 필요하지 않은 접근 권한을 철회하세요.
지속적인 빌드는 CI runner, launchd, tmux 또는 복구 가능한 다른 세션에서 실행해야 합니다. 먼저 한 번 의도적으로 연결을 끊어 작업과 로그가 계속 기록되는지 확인하세요.
주문 리전, 기기 이름과 현재 로그인 사용자를 확인하세요.
화면 출력만으로 빌드가 계속 실행 중인지 판단하지 마세요.
연결을 끊은 후 SSH로 프로세스, 로그 증가와 종료 상태를 확인하세요.
임시 공개 키, 일회성 파일과 더 이상 필요하지 않은 자격 증명을 제거하세요.
네트워크 문제에서는 “어디에서, 언제, 어떤 대상에 접근했고, 어떤 전체 출력이 나왔는가”를 명확히 해야 합니다. 스크린샷 한 장이나 “연결이 느립니다”라는 설명만으로는 로컬 네트워크, 국제 경로, DNS, 포트 정책과 대상 서비스 상태를 구분할 수 없습니다.
정해진 수의 패킷을 연속으로 전송하고 최소·평균·최대 지연 시간과 패킷 손실률을 보관하세요. 한 번의 응답으로 전체 연결 품질을 판단하지 마세요.
ping -c 20 target-host
문제가 발생한 출발지 네트워크에서 실행하고 전체 홉을 보관하세요. 중간 노드가 응답하지 않는다고 해서 링크가 끊긴 것은 아니므로 최종 대상에 도달 가능한지 함께 판단해야 합니다.
traceroute target-host
현재 DNS 서버, 반환 주소와 조회 시간을 기록하세요. 네트워크마다 결과가 다르면 양쪽 출력을 함께 제출하고 결과를 수동으로 수정하지 마세요.
dig target-host
SSH 또는 프로젝트에서 실제 사용하는 포트를 각각 테스트하세요. 연결 성공은 TCP에 도달할 수 있다는 뜻일 뿐, 인증과 상위 프로토콜이 완료되었다는 의미는 아닙니다.
nc -vz target-host 22
제출하기 전에 비밀번호, 개인 키, 토큰과 업무 데이터를 제거하되 타임스탬프, 오류 코드, 경로 홉과 명령어 매개변수는 삭제하지 마세요.
구매 전 문의, 일반 상담과 특정 주문과 관련 없는 안내는 이메일로 보낼 수 있습니다. 노드, 빌드 실패, 연결 이상 또는 결제 기록과 관련된 문제는 콘솔에 로그인해 티켓을 제출해야 주문과 연결하고 처리 상태를 계속 확인할 수 있습니다.
최초 연결, 환경 준비, 자동화 또는 네트워크 점검 경로를 선택하세요. 이미 실행한 단계, 명령어, 결과와 처음 이상이 발생한 위치를 기록하세요.
주문 식별자, 노드 리전, 문제 발생 시간, 재현 단계, 예상 결과, 실제 결과와 비식별화한 전체 로그를 제공하세요. 빌드 문제라면 커밋 버전과 Xcode 버전도 적어야 합니다.
문제에 가장 가까운 분류를 선택하고 로그를 첨부 파일이나 본문 코드 블록으로 제출하세요. 티켓 하나는 문제 하나에 집중하고 네트워크, 빌드와 결제 이상을 한 기록에 섞지 마세요.
재테스트 후 기존 티켓에 새 시간, 명령어와 출력을 계속 답변으로 추가하세요. 긴급 상황도 콘솔에서 처리 상태를 확인하고 동일한 티켓을 여러 개 만들지 마세요.
연결 실패, 노드 이상, 빌드 환경, 결제 확인과 지속적인 후속 조치가 필요한 문제에 적합합니다. 티켓을 주문과 연결하고 전체 처리 타임라인을 보존할 수 있습니다.
구매 전 선택 상담, 절차 확인, 보안 신고와 노드 연결이 필요 없는 안내에 적합합니다. 이메일 제목에 문제 유형을 적고 본문에 비밀번호나 키를 포함하지 마세요.
문의 페이지에는 구매 전, 기술, 결제와 보안 항목별 필수 정보가 정리되어 있어 이메일을 보내기 전에 자료가 완전한지 확인할 수 있습니다.
아래 답변은 기기 인도, 연결 방식, 빌드 작업과 지원 자료를 구분해 잘못된 방향으로 반복 시도하는 일을 줄이는 데 도움이 됩니다.
아닙니다. 주문에 해당하는 전용 물리 Mac mini 노드이며 사양은 Runner M4: Mac Mini M4, 16GB RAM, 256GB SSD입니다. 원격 연결은 접근 방식일 뿐 서비스가 공유 가상 리소스로 바뀌는 것은 아닙니다.
작업을 어떻게 시작했는지에 따라 달라집니다. CI runner, launchd, tmux 또는 독립 백그라운드 프로세스는 일반적으로 VNC 창에 의존하지 않습니다. 그래픽 세션에 직접 연결된 대화형 작업은 세션 상태의 영향을 받을 수 있습니다. 정식 사용 전에 한 번 연결을 끊고 프로세스, 로그와 종료 상태를 확인하세요.
사용 가능한 SSH와 VNC 클라이언트, 팀 내부 자격 증명 보관 방식, 프로젝트에서 요구하는 Xcode 버전, 서명 자료 목록과 저장소에 기록되지 않는 비밀 관리 절차를 준비하세요. 전달 정보를 받은 후 먼저 호스트 지문과 기기 신원을 확인하세요.
자동으로 변경되지는 않습니다. Runner M4는 일·주·월·분기 단위로 주문할 수 있으며 주문 주기와 처리 상태는 콘솔 기록을 기준으로 합니다. 특정 주문을 확인하려면 콘솔에서 해당 주문과 연결된 티켓을 제출하세요.
보관할 아카이브, 산출물과 비식별화한 로그를 먼저 내보낸 다음 소스 작업 공간, 임시 서명 키체인, 프로비저닝 프로파일, 임시 공개 키, 액세스 토큰과 프로젝트 캐시의 민감한 정보를 정리하세요. 셸 기록이나 스크립트 매개변수에 평문 자격 증명을 남기지 마세요.
실제 사무실 네트워크나 CI 출발지에서 대상 리전의 지연 시간과 경로를 먼저 테스트한 후 팀의 시간대와 산출물 전송 방향을 함께 고려하세요. Runner M4는 싱가포르, 일본 도쿄, 한국 서울, 홍콩과 미국 동부의 5개 노드에서 주문할 수 있으며 실제 이용 가능 여부는 콘솔의 실시간 결과를 기준으로 합니다.
Runner M4와 대상 리전을 선택하고 주문을 완료한 후 이 페이지의 단계에 따라 연결을 확인하고 툴체인을 준비한 다음 첫 번째 반복 가능한 빌드 작업을 실행하세요.