빌드 데이 체크리스트

코드를 작성한 뒤,
Mac에서 다음으로 할 일은?

Windows나 Linux에서 계속 개발하고, 아카이브할 때 클라우드 Mac으로 프로젝트를 옮기세요. 먼저 연결과 환경을 확인하고, 의존성을 복원한 뒤 서명 자료를 가져와 프레임워크에 맞는 iOS 빌드 결과물을 생성하면 됩니다.

이 페이지에서는 연결, 브라우저 원격 데스크톱, 환경 초기화, 요금 관련 문제를 다룹니다. 업무 코드 작성, Apple 개발자 계정 관리, 배포 자격 및 서명 권한 처리는 지원하지 않습니다.

이미 대여하셨나요? 아래 이전 체크리스트부터 확인하세요. 연결 자격 증명과 인스턴스 상태는 로그인 후 콘솔에서만 확인할 수 있습니다.

이전 작업은 나눠서 진행하세요

프로젝트 데이터, 툴체인, CI는 각각 별도의 경로로 처리합니다.

로컬 Mac과 Windows 프로젝트 모두 버전 관리 저장소에서 복원할 수 있습니다. 재현 가능한 설정부터 옮긴 뒤 민감한 자료를 이전하세요. 기존 머신의 캐시 디렉터리 전체를 그대로 복사하지 마세요.

데이터 이전

프로젝트와 서명 자료 가져오기

접근 권한이 있는 Git 저장소에서 프로젝트를 가져오세요. 저장소 주소는 환경 변수로 전달하고, 접근 토큰을 명령 기록이나 스크린샷에 남기지 마세요.

  1. 브랜치와 서브모듈을 동기화하고 프레임워크 및 패키지 관리자의 잠금 파일을 유지하세요.
  2. 서명이 필요하면 보안이 확보된 경로로 인증서와 프로비저닝 프로파일을 전송하고, 이번 작업에 필요한 자료만 가져오세요.
  3. 대용량 파일은 활성화되어 있고 연결 가능한 SSH 전송을 우선 사용하세요. 브라우저 데스크톱의 파일 업로드 지원 여부는 현재 연결 화면에서 확인하세요.
git clone "$PROJECT_REPOSITORY" project
cd project
git submodule update --init --recursive
git rev-parse HEAD
git status --short

확인 사항: 양쪽의 커밋 번호가 일치해야 합니다. 비공개 의존성 접근 권한, 추가 리소스, 서명 파일은 코드만으로 자동 복원되지 않습니다.

환경 이전

버전을 확인한 뒤 의존성을 채우세요

먼저 인스턴스에서 실제로 사용할 수 있는 도구를 확인하세요. 모든 머신에 같은 버전이 미리 설치되어 있다고 가정하지 마세요. Xcode가 프로젝트 요구 사항과 맞지 않으면 컴파일 전에 호환성부터 해결하세요.

  1. Xcode 개발자 디렉터리, 버전, 사용 가능한 SDK를 확인하고 명령줄이 목표 툴체인을 가리키는지 확인하세요.
  2. Homebrew와 Brewfile로 프로젝트에 필요한 도구를 복원한 뒤 CocoaPods, Flutter SDK, Node 버전을 확인하세요.
  3. Unity 프로젝트는 호환되는 에디터 버전을 사용하고 Unity Hub에서 iOS Build Support가 설치되어 있는지 확인하세요.
xcode-select -p
xcodebuild -version
xcodebuild -showsdks
brew --version
brew bundle check
pod --version
flutter --version
node --version

확인 사항: Brewfile이 있을 때만 해당 파일이 있는 디렉터리에서 검사를 실행하세요. 명령을 찾을 수 없으면 해당 도구를 먼저 설치하세요. Unity 사용 권한은 직접 확인해야 합니다.

자동화 이전

데스크톱 빌드가 통과한 뒤 CI에 연결하세요

먼저 대화형 세션에서 빌드를 한 번 완료해 의존성과 서명이 정상인지 확인하세요. 그런 다음 임시 self-hosted runner를 등록하면 환경 오류와 파이프라인 문제를 구분하기 쉽습니다.

  1. 사용 중인 CI 플랫폼에서 macOS와 칩 아키텍처에 맞는 runner 패키지와 단기 등록 토큰을 받으세요.
  2. 압축을 푼 디렉터리에서 플랫폼 안내에 따라 등록하고 작업 레이블, 작업 디렉터리, 실행 사용자를 확인하세요.
  3. 프로젝트에 fastlane 설정이 있다면 먼저 lane 목록을 확인한 뒤 팀에서 정한 빌드 절차를 실행하세요.
./config.sh --url "$CI_REPOSITORY_URL" --token "$RUNNER_TOKEN"
./run.sh

bundle check
bundle exec fastlane lanes

확인 사항: runner 명령은 CI 플랫폼에 따라 다르며 범용 설치 프로그램이 아닙니다. 위 등록 방식은 해당 스크립트를 제공하는 플랫폼에서만 사용할 수 있습니다. 만료 전에 runner 등록을 해제하고 토큰을 폐기하세요.

원격 데스크톱에 연결했다고 파일을 바로 끌어다 놓을 수 있는 것은 아닙니다.클립보드 콘텐츠 유형과 크기, 파일 전송 기능은 현재 연결 방식의 구현에 따라 달라집니다. SSH 또는 VNC 클라이언트가 필요하면 콘솔에서 연결 방식, 자격 증명, 주소를 먼저 확인하세요. 포트가 열려 있다고 임의로 가정하지 마세요. 민감한 자료를 공개 다운로드 주소에 올리거나 티켓에 첨부하지 마세요.

프로젝트 유형별 빌드 안내

세 가지 빌드 경로의 결과는 단순히 ‘컴파일 성공’에 그치지 않습니다.

먼저 프로젝트에서 지정한 버전으로 환경을 복원한 뒤 플랫폼 의존성과 서명을 처리하세요. 아래 명령은 해당 프로젝트 디렉터리에서 실행합니다. 결과물을 배포할 수 있는지는 서명 설정, 배포 권한, 대상 플랫폼 요구 사항에 따라 달라집니다.

Flutter: 프로젝트에서 아카이브와 ipa 만들기

준비 사항:Flutter SDK가 프로젝트 요구 사항과 일치하고 iOS 프로젝트, 플러그인 의존성, Xcode 툴체인을 사용할 수 있어야 합니다. 서명 자료와 앱 식별자도 서로 일치해야 합니다.

flutter doctor -v
flutter pub get
flutter build ipa

먼저 flutter doctor -v 에서 확인된 iOS 툴체인 문제를 해결하세요. 의존성 복원에 실패하면 네트워크, 버전 제약, 비공개 패키지 권한을 구분해 확인하세요. 사전 문제를 가리려고 아카이브 명령을 반복 실행하지 마세요.

예상 결과:성공하면 다음을 확인하세요: build/ios/archive 에 아카이브가 있는지, build/ios/ipa 에 내보낸 파일이 있는지 확인하세요. 실제 디렉터리와 내보내기 동작은 사용 중인 Flutter 버전과 빌드 출력에 따라 달라질 수 있습니다.

아카이브만 있고 ipa가 없다면 내보내기 및 서명 오류를 추가로 확인하세요. 빌드가 완료되어도 설치 파일이 TestFlight에 자동 제출되지는 않습니다.

React Native: 올바른 워크스페이스로 아카이브하기

준비 사항:Node, 패키지 관리자, 프로젝트 잠금 파일의 버전이 서로 맞아야 합니다. CocoaPods를 사용하는 프로젝트는 iOS 의존성을 설치하고 올바른 scheme을 선택했는지 확인하세요.

node --version
bundle check
cd ios
bundle exec pod install
open .

Gemfile이 있으면 프로젝트에서 정한 Bundler 환경을 사용하세요. Bundler를 사용하지 않는 프로젝트는 팀 절차에 따라 의존성을 설치하세요. Xcode에서 생성된 .xcworkspace를 여세요. Pods 의존성이 없는 프로젝트 파일을 잘못 열지 않도록 주의하세요.

예상 결과:대상 scheme과 해당되는 기기 아카이브 대상을 선택하고 Product → Archive를 실행해 .xcarchive를 만드세요. 그런 다음 Organizer에서 배포 방식에 따라 내보내거나 업로드하세요.

시뮬레이터에서 실행된다고 기기용 아카이브도 정상이라는 뜻은 아닙니다. 네이티브 모듈에서 오류가 발생하면 마지막 실패 요약만 캡처하지 말고 첫 컴파일 오류와 관련 의존성 버전을 기록하세요.

Unity: 내보낸 뒤에도 Xcode 작업이 필요합니다

준비 사항:Unity 에디터 버전이 프로젝트와 맞고 iOS 모듈을 사용할 수 있어야 합니다. 서드파티 네이티브 플러그인과 리소스가 모두 준비되어 있고, 해당 에디터 사용 권한도 있어야 합니다.

xcodebuild -version
xcodebuild -list -project "$EXPORTED_XCODE_PROJECT"

Unity에서 iOS 빌드 대상으로 전환한 뒤 Xcode 프로젝트를 내보내세요. IL2CPP를 사용하는 프로젝트는 생성된 코드의 네이티브 컴파일도 완료해야 합니다. 내보내기만으로 배포 가능한 설치 파일이 만들어지는 것은 아닙니다.

예상 결과:Xcode에서 서명, 의존성, 대상 설정을 처리한 뒤 Archive를 실행해 아카이브를 만드세요. 그런 다음 배포 절차에 따라 ipa를 내보내거나 업로드하세요. 플러그인이 워크스페이스를 생성했다면 해당 워크스페이스를 열어 작업을 계속하세요.

대규모 프로젝트는 메모리와 중간 파일에 필요한 공간을 먼저 계산하세요. Apple Silicon M4 Pro / 64GB RAM / 2TB SSD는 카탈로그에서 대규모 프로젝트용으로 선택할 수 있지만, 컴파일 시간은 보장되지 않습니다.

첫 빌드가 성공했다면 재현에 필요한 정보도 함께 보관하세요.

커밋 번호, Xcode 및 프레임워크 버전, 의존성 잠금 파일, 사용한 scheme, 빌드 명령, 결과물 경로를 기록하세요. 공개 가능한 설정은 버전 관리에 포함하고, 서명 개인 키와 접근 토큰은 별도로 보관하세요. 다음에 Mac을 일 단위로 대여할 때는 환경을 다시 추측하지 말고 이 기록부터 복원하세요.

데스크톱 지연과 빌드 지연을 구분하세요

화면이 끊기면 연결을, 아카이브가 멈추면 로그를 먼저 확인하세요.

마우스 반응이 늦거나 화면 갱신이 느리면 네트워크와 디스플레이 설정부터 확인하세요. 마우스는 정상인데 컴파일이 오래 걸리면 빌드 로그와 리소스 사용량을 살펴보세요. 원격 연결 방식을 바꿔도 프로젝트 오류가 자동으로 해결되지는 않습니다.

  1. 01

    노드와 네트워크 확인

    먼저 주문에 지정된 노드가 접속 위치와 가까운지 확인한 뒤 유선 또는 안정적인 무선 네트워크를 비교하고, 업로드 대역폭을 많이 사용하는 동기화 작업은 일시 중지하세요. 노드를 변경하려면 다음 절을 먼저 확인하세요. ‘노드 변경’이 기존 주문을 즉시 데이터 손실 없이 이전한다는 뜻은 아닙니다.

    참고: 지리적으로 가깝다는 점은 선택의 출발점일 뿐입니다. 통신사 경로, 지역 간 연결, 현지 네트워크 혼잡도에 따라 실제 왕복 지연 시간이 달라집니다.

  2. 02

    화면 전송 부담 줄이기

    현재 원격 연결 화면에서 제공하는 옵션을 사용해 화질, 해상도, 프레임률을 낮추고 불필요한 동적 콘텐츠를 끄세요. 한 번에 한 항목만 변경하고 변경 전후의 차이를 기록하세요.

    참고: 화면 인코딩과 전송 부담은 줄일 수 있지만 네트워크의 물리적 왕복 시간은 단축되지 않으며 CPU 컴파일 작업도 빨라지지 않습니다.

  3. 03

    VNC 클라이언트 비교

    콘솔에서 연결 정보를 제공하는 경우 VNC 클라이언트로 같은 인스턴스의 사용 경험을 비교할 수 있습니다. 브라우저 연결은 데스크톱에 바로 접속할 때 적합하고, 클라이언트는 연결 방식에 따른 차이를 확인하는 대안이 될 수 있습니다.

    참고: 클라이언트마다 화면 표시와 클립보드 옵션이 다를 수 있지만 노드 위치는 바뀌지 않습니다. 파일 전송 기능은 양쪽 구현에 따라 달라지므로 일괄 지원을 보장하지 않습니다.

  4. 04

    오류 발생 상황 기록

    연결에 실패하면 화면에 표시된 안내, 발생 시각, 시간대를 기록하세요. 빌드에 실패하면 의미 있는 첫 오류와 실행 명령, 버전 정보를 남기세요. 스크린샷을 찍기 전에 비밀번호, 토큰, 인증서 세부 정보, 비공개 프로젝트 내용을 가리세요.

    참고: 스크린샷은 문제 파악에 도움이 되지만 복사할 수 있는 오류 텍스트를 대신하지는 못합니다. 재현 단계 없이 ‘너무 느려요’ 또는 ‘빌드 실패’만 제출하지 마세요.

노드 정보는 선택 방향을 위한 참고 자료이며, 사용자의 연결 경로를 측정한 결과가 아닙니다.

노드는 총 5개입니다. 표시된 구간은 안내된 권역을 기준으로 하며, 임의의 도시에서 해당 노드까지의 지연 시간을 보장하지 않습니다.

노드 → 서비스 권역 → 참고 왕복 지연 시간
노드서비스 권역참고 왕복 지연 시간
싱가포르동남아시아20~50ms
도쿄동아시아30~60ms
서울동북아시아30~50ms
홍콩중국 남부 및 동남아시아20~40ms
미국 동부북미 동부 및 서유럽25~35ms

표시된 구간은 참고용이며 실제 연결 네트워크에 따라 달라집니다. 데스크톱을 실시간으로 조작한다면 가까운 노드를 우선 고려하세요. 빌드만 실행하고 결과물을 가져오는 경우에는 의존성 다운로드와 파일 전송 여건도 함께 고려해야 합니다.

노드 변경 전 주문 확인

노드를 바꾸기 전에 프로젝트와 대여 계약을 따로 생각하세요.

노드는 주문 설정의 일부입니다. 이 페이지는 동일 주문에서 노드를 변경하는 기능이 기본 제공된다고 간주하지 않으며, 디스크, 연결 주소, 남은 대여 기간이 자동으로 이전된다고 보장하지 않습니다. 변경 가능 여부와 비용 및 데이터 처리 방법은 콘솔 티켓으로 해당 주문을 확인하세요.

먼저 문의한 뒤 기존 인스턴스를 조작하세요

주문 번호, 현재 노드, 희망 노드와 변경 사유를 제출하고 진행 중인 빌드가 있는지도 알려주세요. 주문 변경 방식, 발생할 수 있는 비용, 필요한 절차를 안내받을 때까지 기다리세요. 확인 전에 환경을 삭제하거나 새 노드가 기존 인스턴스 상태를 이어받는다고 가정하지 마세요.

별도로 새 머신을 대여해야 한다면 새 주문의 구성, 대여 기간, 현재 이용 가능 여부를 먼저 확인하세요. 기존 주문의 종료 또는 갱신은 해당 주문과 서비스 약관에 따라 처리됩니다.

새 인스턴스는 새 Mac처럼 준비하세요

커밋하지 않은 코드를 먼저 푸시하고 빌드 결과물을 내보내세요. 필요한 설정, 인증서, 프로비저닝 프로파일은 별도로 백업하세요. 새 인스턴스에서 도구 버전, 접근 권한, 서명을 다시 확인하고 기존 디스크 내용이 이전되었다고 가정하지 마세요.

전환이 완료되면 CI 연결 설정을 업데이트하고 기존 runner 등록을 해제한 뒤 더 이상 사용하지 않는 토큰을 폐기하세요. 만료 시 데이터 처리 방식은 서비스 약관과 콘솔 안내를 따르세요. 만료 후 복구를 백업 대책으로 간주하지 마세요.

첫 티켓에 재현 정보를 담으세요

어느 머신에서 어떤 단계에 문제가 생겼는지 한 번에 설명하세요.

콘솔에 로그인해 티켓 메뉴에서 새 요청을 만들고 확인이 필요한 주문을 연결하세요. 콘솔 티켓은 인스턴스, 연결, 초기 설정, 청구 문제에 적합합니다. 로그인할 수 없다면 support@testmini.com 으로 문의하세요.

제출 전에 다음 정보를 준비하세요

  • 주문 및 노드:주문 번호, 머신 모델, 현재 노드, 문제가 발생한 인스턴스
  • 시간 및 환경:발생 시각과 시간대, 로컬 운영체제, 브라우저 또는 VNC 클라이언트 버전
  • 작업 및 결과:어떤 화면이나 명령에서 시작했는지, 예상한 결과와 실제로 확인한 내용
  • 오류 및 증거:오류 텍스트, 민감 정보를 가린 스크린샷, 관련 로그 일부, 재현 가능 여부
  • 이미 시도한 방법:네트워크 변경, 화질 조정, 재연결 등 시도한 작업과 그 결과

결제 관련 문의에는 주문 번호, 결제 수단, 콘솔에 표시된 상태를 적으세요. USDT-TRC20 결제는 트랜잭션 해시를 제공할 수 있습니다. 카드 문제를 문의할 때는 카드 번호 전체, 보안 코드, 인증 코드를 보내지 마세요.

티켓 본문은 다음 순서로 작성하세요

아래 항목을 콘솔 티켓에 입력하세요. 프로젝트 전체를 업로드할 필요는 없습니다.

대상 정보
주문 번호, 노드, 머신 모델
발생 시각
정확한 시각과 사용한 시간대
재현 절차
작업 순서, 명령, 오류 텍스트
환경 정보
브라우저, Xcode, 프레임워크 버전
문제 해결 결과
이미 시도한 방법과 달라진 점

로그인 비밀번호, 개인 키, 서명 인증서 원본, CI 등록 토큰은 첨부하지 마세요. 추가 진단에 필요한 경우 티켓 안내에 따라 최소한의 정보만 제공하세요.

티켓에서 진행 상황을 확인하세요. 요청을 보냈다고 처리가 완료된 것은 아닙니다.

지원은 주로 아시아·태평양 업무 시간에 진행됩니다. 정해진 분 또는 시간 내 처리를 보장하지 않으며, 티켓 접수 후 답변과 후속 진행은 콘솔 기록을 기준으로 확인할 수 있습니다. 추가 정보는 같은 티켓에 답글로 남기고 문제가 재현되는 환경을 유지하세요. 머신 만료가 임박했다면 중요한 파일부터 내보낸 뒤 갱신 여부를 확인하세요.

청구 확인에 사용할 수 있는 결제 수단은 USD로 결제되는 USDT-TRC20과 Stripe를 통한 Visa / Mastercard / Amex뿐입니다. 실제 사용 가능한 결제 게이트웨이는 백엔드 응답을 따릅니다. 결제 확인에는 블록체인 승인이나 카드 발급사의 처리가 필요할 수 있으며, 스크린샷만으로 결제가 확인되는 것은 아닙니다.

서비스 규칙도 확인하세요

기술 절차뿐 아니라 대여 기간과 노드도 확인해야 합니다.

연결, 빌드, 주문은 서로 다른 문제 영역입니다. 관련 문서에서 전제 조건을 확인한 뒤 문제 해결을 계속할지, 티켓을 제출할지, 다음 머신을 대여할지 결정하세요.

문제 확인

최소 하루 대여, 브라우저와 VNC의 차이, 추가 구매 요금, 서명 자료, 대여 종료 후 데이터 처리 방식을 확인하세요.

자주 묻는 질문 보기

노드 선택

서비스 지역과 작업 방식에 따라 5개 노드를 확인하세요. 참고 지연 시간은 선택을 위한 정보이며 실제 사용 경험은 연결 네트워크에 따라 달라집니다.

노드 선택 확인

서비스 약관 읽기

장시간 컴파일을 시작하기 전에 청구 주기, 갱신, 만료 후 처리, 사용 범위를 확인하고 대체할 수 없는 파일을 미리 내보내세요.

서비스 약관 읽기

빌드 전에 환경을 확인하고, 문제가 생기면 기록을 함께 제출하세요.

이미 주문했다면 콘솔에서 계속 진행하세요. 아직 머신을 대여하지 않았다면 프로젝트 요구 사항에 맞는 구성과 노드를 먼저 선택하세요. 프로젝트와 결과물은 직접 백업하고, 머신과 주문 관련 문제는 티켓으로 확인하세요.