⚠️ 먼저 iOS 자격 증명 설정
필수: 빌드하기 전에 iOS 자격 증명을 저장해야 합니다.
Capgo의 전용 Mac 인프라를 사용하여 TestFlight 및 App Store에 iOS 앱을 빌드하고 제출하세요.
⚠️ 먼저 iOS 자격 증명 설정
필수: 빌드하기 전에 iOS 자격 증명을 저장해야 합니다.
iOS 빌드는 온디맨드로 프로비저닝된 전용 Mac 머신(Scaleway Mac minis M4)에서 실행됩니다:
iOS용으로 빌드하기 전에 다음이 필요합니다:
npx cap open ios로 성공적으로 빌드되는 앱빌드에 따라 다음 인증서 유형 중 하나가 필요합니다:
| 빌드 유형 | 필요한 인증서 | 프로비저닝 프로파일 |
|---|---|---|
| Development | Apple Development | Development Profile |
| Ad Hoc | Apple Distribution | Ad Hoc Profile |
| App Store | Apple Distribution | App Store Profile |
간단한 개요:
인증서 서명 요청(CSR) 생성
.certSigningRequest 파일 저장Apple Developer Portal에서 인증서 생성
.cer 파일) 다운로드.p12로 인증서 내보내기
.cer 파일을 더블 클릭하여 키체인에 추가.p12 형식으로 저장하고 비밀번호 설정 (이 비밀번호를 저장하세요!)프로비저닝 프로파일 생성
.mobileprovision 파일 다운로드자동 TestFlight 제출을 위해 API 키를 생성하세요:
.p8 파일 다운로드 (한 번만 다운로드 가능합니다!)빌드하기 전에 다음 자격 증명을 설정하세요:
# iOS 서명 (필수)BUILD_CERTIFICATE_BASE64="<base64-encoded-p12-certificate>"BUILD_PROVISION_PROFILE_BASE64="<base64-encoded-mobileprovision>"P12_PASSWORD="<certificate-password>"
# App Store Connect API (제출용)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="00000000-0000-0000-0000-000000000000"APPLE_KEY_CONTENT="<base64-encoded-p8-key>"
# 추가 구성APP_STORE_CONNECT_TEAM_ID="1234567890"APPLE_PROFILE_NAME="App Store com.example.app"인증서 (.p12):
base64 -i YourCertificate.p12 | pbcopy프로비저닝 프로파일 (.mobileprovision):
base64 -i YourProfile.mobileprovision | pbcopyApp Store Connect 키 (.p8):
base64 -i AuthKey_ABC1234567.p8 | pbcopybase64 문자열이 이제 클립보드에 있습니다 - 환경 변수 또는 CI/CD 시크릿에 붙여넣으세요.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode debug이렇게 하면 등록된 기기에 설치할 수 있는 개발 빌드가 생성됩니다.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode release이렇게 하면 App Store 빌드가 생성되며 App Store Connect API 자격 증명이 구성된 경우 자동으로 TestFlight에 제출됩니다.
name: Build iOS App
on: push: branches: [main]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24'
- name: Install dependencies run: npm ci
- name: Build web assets run: npm run build
- name: Sync Capacitor run: npx cap sync ios
- name: Build iOS app env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }} APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }} APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }} APP_STORE_CONNECT_TEAM_ID: ${{ secrets.TEAM_ID }} run: | npx @capgo/cli@latest build ${{ secrets.APP_ID }} \ --platform ios \ --build-mode release머신 프로비저닝 (1-2분)
사용자 격리 (~10초)
job-<jobId>/Users/job-<jobId>프로젝트 설정 (~30초)
Fastlane 빌드 (3-8분)
App Store 제출 (1-2분, 구성된 경우)
정리 (즉시)
머신 해제 (24시간 후)
iOS 빌드 환경에는 다음이 포함됩니다:
일반적인 iOS 빌드 시간:
| 빌드 유형 | 첫 번째 빌드 | 후속 빌드* |
|---|---|---|
| Debug | 5-7분 | 4-6분 |
| Release | 7-10분 | 5-8분 |
*동일한 머신이 24시간 윈도우 내에 재사용되는 경우 후속 빌드가 더 빠를 수 있습니다.
“Code signing failed”
“Provisioning profile doesn’t include signing certificate”
“App Store Connect authentication failed”
“Build timeout after 10 minutes”
모든 빌드 로그가 실시간으로 스트리밍됩니다. 다음 주요 단계를 확인하세요:
✔ Machine assigned: m-abc123→ Creating user: job-abc123→ Installing CocoaPods dependencies...→ Building iOS app...→ Code signing with certificate...→ Uploading to App Store Connect...✔ Build succeeded빌드가 실패하면 특정 Fastlane/Xcode 오류 메시지가 로그에 명확하게 표시됩니다.
클라우드 빌드를 사용하기 전에 항상 iOS 빌드가 로컬에서 작동하는지 확인하세요:
npx cap open ios# Xcode에서 빌드인증서나 키를 리포지토리에 커밋하지 마세요. 항상 다음을 사용하세요:
더 빠른 빌드를 위해 package.json 및 Podfile.lock이 버전 관리에 커밋되어 있는지 확인하세요.
비용을 최적화하기 위해 빌드 기간을 주시하세요:
# CLI가 빌드 시간을 끝에 표시합니다Build succeeded in 6m 42s (13.4 billing minutes at 2× rate)