엔지니어가 바로 실행하는 문제 해결 경로

먼저 문제를 찾고, 가장 짧은 단계로 클라우드 Mac을 복구하세요.

최초 SSH 연결부터 Xcode 툴체인, CI/CD 실행기와 노드 네트워크까지, 이 페이지에서는 먼저 점검 명령을 제시한 뒤 판단 기준을 설명합니다. 계속 복구되지 않으면 주문 번호, 노드, 시간 및 비식별화된 로그를 첨부해 지원 티켓을 제출하세요.

우선 경로
4단계로 최초 연결 완료
문제 범위
자주 발생하는 6가지 작업
지원 채널
이메일 및 콘솔 티켓
ONCEMAC SUPPORT BOARD 노드 점검표
점검 시작 가능
A1
연결 정보 확인 호스트 주소, 사용자 이름, 키 파일
연결
B2
툴체인 확인 Xcode, CLT 경로, 빌드 로그
빌드
C3
실행 범위 확인 디스크, 네트워크, 프로세스 및 재시작 기록
노드
제출 전에 키, 액세스 토큰 및 전체 IP를 삭제하세요
빠른 찾기

작업별로 답을 찾고 처음부터 읽을 필요는 없습니다.

연결, Xcode, CI/CD, 스토리지, 네트워크 또는 갱신을 선택하면 관련 항목으로 이동합니다. 명령, 증상 또는 도구 이름을 입력해 검색할 수도 있습니다.

현재 6개 도움말 분류를 모두 표시하고 있습니다.

최초 사용 우선

4단계로 첫 SSH 연결 설정

연결 정보는 콘솔 인스턴스 상세 페이지를 기준으로 합니다. 이전 티켓이나 과거 명령으로 호스트 주소를 추측하지 마세요. 노드가 재할당된 경우 현재 정보를 다시 복사해야 합니다.

  1. 01

    현재 연결 정보 복사

    콘솔의 인스턴스 상세 화면에서 호스트 주소, SSH 사용자 이름, 포트 및 키 정보를 복사하세요. 먼저 선택한 주문과 노드가 일치하는지 확인한 다음 명령을 로컬 터미널에 붙여 넣습니다.

  2. 02

    개인 키를 제한된 디렉터리에 저장

    키 파일은 로컬 사용자가 관리할 수 있는 디렉터리에 저장하고 Git 저장소, 빌드 산출물 또는 팀 채팅에 올리지 마세요. 파일 이름은 자유롭게 정할 수 있지만 이후 명령의 경로와 일치해야 합니다.

  3. 03

    로컬 파일 권한 제한

    macOS 또는 Linux 로컬 터미널에서 실행하세요 chmod 600 ~/.ssh/oncemac_keySSH에서 개인 키 권한이 너무 넓다고 표시되면 먼저 권한을 수정하세요. 보안 검사를 해제해 우회하지 마세요.

  4. 04

    연결 후 노드 신원 확인

    콘솔에서 제공한 SSH 명령을 실행하세요. 최초 연결 시 호스트 지문의 출처를 확인하고, 노드에 접속한 뒤 다음을 실행합니다: hostname, sw_verswhoami을 실행해 호스트, 시스템 및 현재 사용자를 확인하세요.

명령 실행 순서

먼저 연결과 버전을 확인한 뒤 전체 빌드를 시작하세요.

한 번의 점검에서는 변수 하나만 변경하세요. 먼저 SSH 세션이 안정적인지 확인하고 Xcode 버전을 확인한 다음 결과 번들과 로그를 포함한 빌드 명령을 실행합니다. 이렇게 하면 연결 문제, 툴체인 문제 및 프로젝트 자체 문제를 구분할 수 있습니다.

  • 연결 계층SSH 연결에 성공하면 노드 이름과 현재 사용자를 기록합니다.
  • 도구 계층현재 적용된 Xcode와 개발자 디렉터리를 확인합니다.
  • 프로젝트 계층scheme, destination, 종료 코드 및 로그를 보존합니다.
  • 자동화 계층비식별화된 fastlane 출력만 티켓에 첨부합니다.
once-node / build-diagnostics
SSH
$ ssh -i ~/.ssh/oncemac_key user@host
Last login: current session
connected: once-node

$ xcodebuild -version
Xcode 16.x
Build version 16x

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

$ set -o pipefail
$ xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -destination 'generic/platform=iOS' \
  -resultBundlePath ./BuildResults.xcresult \
  build | tee build.log

** BUILD SUCCEEDED **

$ bundle exec fastlane ios build
[fastlane] resolving dependencies
[fastlane] archive completed
[fastlane] lane finished successfully
툴체인 확인

Xcode 문제를 버전, 경로, 서명 및 로그로 나누어 확인하세요.

“로컬에서는 빌드되지만 노드에서는 빌드되지 않는” 현상만으로는 원인을 찾기 어렵습니다. 동일한 커밋, 종속성 잠금 파일, scheme, destination 및 환경 변수를 대조한 뒤 양쪽 출력을 비교하세요.

XC-01

Xcode 버전 확인

다음을 실행하세요: xcodebuild -version주 버전과 Build version을 기록합니다. 파이프라인이 특정 버전에 의존한다면 최초 설정 시에만 확인하지 말고 작업 시작 시 버전을 출력하세요.

xcodebuild -version
xcrun --find simctl
swift --version
XC-02

개발자 디렉터리 확인

다음을 실행해 xcode-select -p 현재 Command Line Tools 경로를 확인하세요. 여러 Xcode 버전을 사용한다면 실행기 환경에서 DEVELOPER_DIR을 명시해 대화형 세션과 자동화 작업이 서로 다른 경로를 읽지 않도록 하세요.

xcode-select -p
echo "$DEVELOPER_DIR"
xcrun --sdk iphoneos --show-sdk-path
XC-03

서명 환경 확인

키체인에 접근할 수 있고 인증서 이름과 provisioning profile 조건이 일치하는지 먼저 확인한 다음 프로젝트의 Team, Bundle Identifier 및 서명 방식을 점검하세요. 티켓에는 비식별화된 오류 구간만 제공하고 인증서, 개인 키 또는 비밀번호는 첨부하지 마세요.

security list-keychains
security find-identity -v -p codesigning
xcodebuild -showBuildSettings
XC-04

검토 가능한 로그 내보내기

다음을 사용해 set -o pipefail 실제 종료 상태를 보존하고 tee 로 로그를 기록합니다. 복잡한 실패에는 .xcresult를 생성하는 것이 좋으며, 공유 전에 사용자 이름, 경로, 토큰 및 업무 데이터를 삭제하세요.

set -o pipefail
xcodebuild build | tee build.log
echo "${PIPESTATUS[0]}"
자동화 실행기

CI/CD를 연동하기 전에 실행 ID와 작업 디렉터리를 고정하세요.

OnceMac은 전용 물리 노드와 완전한 macOS 명령줄 환경을 제공합니다. 구체적인 플랫폼 기능, 플러그인 호환성 및 작업 정의는 팀의 저장소와 버전 조건에서 직접 검증해야 합니다.

RUNNER / 01

GitHub Actions 자체 호스팅 실행기

  • 실행기 서비스가 사용하는 macOS 사용자와 수동 SSH 테스트 사용자가 동일한지 확인하세요.
  • 저장소, 조직 또는 엔터프라이즈 범위의 등록 위치를 확인해 작업이 잘못된 태그에 할당되지 않도록 하세요.
  • 노드에 식별 가능한 태그를 설정하고 워크플로에서 해당 runs-on 조건을 명시적으로 사용하세요.
  • 비대화형 셸에서 필요한 PATH, Ruby, Homebrew 및 Xcode 경로를 읽을 수 있는지 확인하세요.
  • 동시 작업을 시작하기 전에 DerivedData, 패키지 관리자 캐시 및 디스크 여유 공간을 확인하세요.
RUNNER / 02

GitLab Runner

  • executor 유형, runner 태그, 보호 브랜치 규칙 및 작업 매칭 조건을 확인하세요.
  • LaunchAgent 또는 서비스 프로세스의 사용자, HOME 및 키체인 컨텍스트를 확인하세요.
  • 작업 첫 부분에서 whoamipwd를 비롯해 Xcode 버전 및 사용 가능한 디스크를 출력하세요.
  • 캐시 키에 종속성 잠금 파일 또는 툴체인 버전을 포함해 호환되지 않는 캐시를 재사용하지 않도록 하세요.
  • 실패 시 job 로그, 종료 코드 및 runner 서비스 상태를 함께 보존하세요.
RUNNER / 03

Jenkins 노드

  • 에이전트 시작 방식, 작업 디렉터리 및 노드 태그가 Pipeline 조건에 맞는지 확인하세요.
  • Jenkins 실행 사용자가 저장소, 빌드 디렉터리 및 필요한 키체인을 읽을 수 있는지 확인하세요.
  • Xcode 선택, 종속성 설치 및 빌드 명령을 검토 가능한 Pipeline에 기록하세요.
  • 동일한 물리 노드의 동시 실행기 수를 제한해 디스크 및 메모리 경합을 방지하세요.
  • 아카이브 전에 workspace 크기, 빌드 결과 경로 및 정리 정책을 기록하세요.
재현 가능한 마이그레이션

파일만 마이그레이션하고 감사할 수 없는 기존 환경은 복사하지 마세요.

Git, 잠금 파일 및 Brewfile을 기준으로 툴체인을 다시 구축하고 꼭 필요한 작업 디렉터리와 캐시만 마이그레이션하세요. 기존 사용자 환경을 통째로 복사하면 오래된 설정, 절대 경로 및 민감한 자격 증명까지 새 노드로 옮겨집니다.

MIGRATION MANIFEST 환경 마이그레이션 목록
소스 코드 Git으로 복제하고 커밋 해시 확인 커밋되지 않은 비밀이 포함된 기존 작업 트리를 복사하지 마세요
시스템 도구 Brewfile로 선언적 복원 복원 후 버전과 PATH를 다시 확인
프로젝트 파일 rsync 증분 전송 캐시, 로그 및 자격 증명 디렉터리를 명시적으로 제외
빌드 캐시 툴체인 버전에 따라 선택적으로 마이그레이션 버전이 바뀌면 우선 다시 생성

rsync로 작업 디렉터리 마이그레이션

먼저 드라이런으로 복사 및 삭제될 내용을 확인한 뒤 정식 동기화를 실행하세요. 대상 경로에서 삭제가 발생하는 경우 반드시 작업자가 확인해야 합니다.

rsync -avhn \
  --exclude '.git' \
  --exclude 'DerivedData' \
  ./Project/ user@host:~/Project/

Git으로 코드 상태 고정

소스 노드에서 브랜치, 커밋 해시 및 커밋되지 않은 변경 사항을 기록하세요. 새 노드에서 복제를 완료한 뒤 해시를 확인하고 종속성을 복원합니다. 버전 기록을 압축 파일로 대체하지 마세요.

git status --short
git rev-parse HEAD
git clone repository-url
git checkout commit-hash

Brewfile로 도구 재구축

내보내기 전에 목록을 검토하고 더 이상 필요하지 않은 소프트웨어를 제거하세요. 복원 후 각 명령의 버전을 확인해야 하며, 설치 명령이 성공적으로 종료된 것만으로 환경이 정상이라고 판단하지 마세요.

brew bundle dump --file Brewfile
brew bundle check --file Brewfile
brew bundle install --file Brewfile
마이그레이션 전 민감한 자격 증명 별도 확인

SSH 개인 키, 저장소 토큰, 서명 자료, 환경 변수 파일 및 서비스 키를 프로젝트 디렉터리와 함께 일괄 복사하면 안 됩니다. 새 노드의 최소 권한을 확인한 뒤 팀에서 승인한 보안 절차로 다시 구성하세요.

문제 해결 최단 경로

검증 가능한 조건부터 제외한 다음 전체 맥락을 제출하세요.

다섯 가지 문제는 모두 “증상 확인, 최소 명령 실행, 결과 기록, 무효한 변경 중지” 순서로 처리하세요. 해당 항목을 펼치면 점검 목록을 확인할 수 있습니다.

연결할 수 없음 SSH 시간 초과, 연결 거부 또는 키 인증 실패
  1. 현재 인스턴스 상세 정보에서 호스트 주소, 포트 및 사용자 이름을 다시 복사하고 이전 주문 정보를 사용하지 않았는지 확인하세요.
  2. 다음을 실행하세요: chmod 600 로컬 개인 키 권한을 확인하고 명령에 지정한 키 경로가 존재하는지 확인하세요.
  3. 다음을 사용해 ssh -vvv 연결 단계를 확인하되, 티켓 제출 전에 전체 주소, 사용자 이름 및 키 경로의 개인 정보를 삭제하세요.
  4. 신뢰할 수 있는 다른 네트워크로 전환해 재현 테스트를 진행하고 로컬 출구 제한과 노드 연결 문제를 구분하세요.
  5. 티켓에 주문 번호, 노드, 발생 시간, 오류 유형 및 비식별화된 디버깅 마지막 구간을 첨부하세요.
빌드 실패 xcodebuild, 종속성 확인 또는 서명 단계에서 종료
  1. 커밋 해시, scheme, destination, Xcode 버전 및 개발자 디렉터리를 기록하세요.
  2. 종속성 확인 실패, 컴파일 실패, 테스트 실패, 서명 실패 및 아카이브 실패를 명확히 구분하세요.
  3. 다음을 사용해 set -o pipefail 실제 종료 코드를 보존하고 .xcresult 또는 전체 로그를 내보내세요.
  4. 종속성 업그레이드, Xcode 전환 및 전체 캐시 삭제를 동시에 진행하지 마세요. 한 번에 변수 하나만 변경하세요.
  5. 티켓에는 첫 번째 주요 오류 전후의 로그를 첨부하고 저장소 토큰, 서명 자료 및 업무 데이터를 삭제하세요.
디스크 공간 부족 빌드 중단, 아카이브 실패 또는 작업 디렉터리의 지속적인 증가
  1. 다음을 실행해 df -h 볼륨 여유 공간을 확인한 뒤 du -sh 로 작업 영역, DerivedData, 아카이브 및 종속성 캐시의 위치를 확인하세요.
  2. 로그, 테스트 결과 및 이전 산출물에 명확한 보존 기간이 있는지 확인하고 사용자 디렉터리 전체를 바로 삭제하지 마세요.
  3. 정리하기 전에 계속 다운로드해야 하는 빌드 산출물을 저장하고 해당 디렉터리를 사용 중인 작업이 없는지 확인하세요.
  4. 장기 용량 요구가 기본 SSD를 초과하면 요금제에서 +1TB SSD 또는 +2TB SSD 추가 옵션을 검토할 수 있습니다.
  5. 티켓에는 디스크 사용량 요약, 증가한 디렉터리 및 실패 작업 시간을 첨부하고 프로젝트 소스 파일은 업로드하지 마세요.
네트워크 불안정 SSH 지연, 종속성 다운로드 실패 또는 저장소 연결 불안정
  1. 로컬에서 노드로의 구간과 노드에서 대상 저장소 또는 종속성 소스로의 구간을 나누어 기록하고 두 경로를 하나의 결론으로 묶지 마세요.
  2. 연속 샘플링 시 테스트 위치, 통신사, 노드, 명령 및 샘플 수를 기록하세요. 한 번의 ping만으로 지속적인 사용 환경을 판단할 수 없습니다.
  3. DNS 확인, 프록시 환경 변수, Git 원격 저장소 및 패키지 관리자 소스가 팀 설정과 일치하는지 확인하세요.
  4. 신뢰할 수 있는 다른 로컬 네트워크로 비교 테스트를 진행해 로컬 Wi-Fi 또는 출구 정책을 노드 이상으로 오해하지 않도록 하세요.
  5. 티켓에 발생 시간 범위, 대상 유형, 실패 비율 및 비식별화된 출력을 첨부하세요.
노드 재시작 세션 중단, 서비스 미복구 또는 실행기 오프라인
  1. 먼저 콘솔에서 현재 노드 상태를 확인하고 전원 작업을 연속으로 반복하지 마세요.
  2. 연결이 복구되면 uptime을 실행해 시작 시간과 문제 발생 시간이 일치하는지 확인하세요.
  3. 자체 호스팅 실행기, GitLab Runner 또는 Jenkins agent의 시작 방식과 현재 서비스 상태를 확인하세요.
  4. 빌드 작업 영역이 온전한지 확인하고 완료되지 않은 작업의 산출물을 다시 검증하세요. 상태가 불명확한 아카이브는 재사용하지 마세요.
  5. 티켓에 주문 번호, 노드, 발생 시간, 재시작 전후 증상 및 복구가 필요한 서비스 이름을 첨부하세요.
지원 문의

한 번에 충분한 정보를 제출해 추가 확인을 줄이세요.

기존 주문, 노드 상태 및 갱신 문제는 우선 콘솔 티켓으로 제출하세요. 아직 주문하지 않은 구성 및 사용 범위 문의는 이메일로 보낼 수 있습니다. 공식 연락처는 support@oncemac.com 하나뿐입니다.

SUPPORT PACKET 티켓 정보 패키지
01

주문 및 노드

주문 번호, 구성 이름 및 노드 지역을 제공하고 결제 자격 증명이나 전체 청구 자료는 제공하지 마세요.

02

발생 시간

시간대, 최초 발생 시간, 마지막 재현 시간 및 문제가 지속되는지 명시하세요.

03

재현 작업

실행한 명령, 예상 결과, 실제 결과 및 종료 코드를 나열하고 단순히 “사용할 수 없음”이라고만 쓰지 마세요.

04

비식별화된 로그

오류 맥락은 유지하되 키, 토큰, 비밀번호, 전체 IP, 서명 자료 및 업무 데이터를 삭제하세요.

05

수행한 점검

확인한 네트워크, 버전, 경로, 디스크 및 재시도 결과를 설명해 무효한 단계를 반복하지 않도록 하세요.

기존 주문

콘솔에서 티켓 제출

노드 연결, 빌드 이상, 청구, 갱신 및 주문 상태 문제에 적합합니다. 티켓은 로그인 계정과 연결되어 인스턴스 맥락을 확인하기 쉽습니다.

콘솔로 이동
구매 전 및 일반 문의

구조화된 이메일 보내기

사용 목적, 대상 노드, Xcode 버전, 동시 빌드 수, 스토리지 요구 사항 및 사용 희망 시점을 명시하세요.

support@oncemac.com
전용 물리 Mac mini 노드

새 노드가 필요하다면 구성과 이용 기간을 바로 선택하세요.

OnceMac은 판매 중인 3가지 구성과 6개 노드를 제공하며 365일 연중 지속 운영됩니다. 모든 주문은 달러로 결제하며 콘솔에서 주문, 노드 및 티켓을 통합 관리할 수 있습니다.