â ď¸ Setup Kredensial iOS Terlebih Dahulu
Wajib: Anda harus menyimpan kredensial iOS sebelum build.
Build dan submit aplikasi iOS ke TestFlight dan App Store menggunakan infrastruktur Mac dedicated Capgo.
â ď¸ Setup Kredensial iOS Terlebih Dahulu
Wajib: Anda harus menyimpan kredensial iOS sebelum build.
Build iOS berjalan di mesin Mac dedicated (Scaleway Mac minis M4) yang diprovision on-demand:
Sebelum build untuk iOS, Anda memerlukan:
npx cap open iosAnda memerlukan salah satu tipe sertifikat ini tergantung build Anda:
| Tipe Build | Sertifikat Diperlukan | Provisioning Profile |
|---|---|---|
| Development | Apple Development | Development Profile |
| Ad Hoc | Apple Distribution | Ad Hoc Profile |
| App Store | Apple Distribution | App Store Profile |
Gambaran Singkat:
Buat Certificate Signing Request (CSR)
.certSigningRequestGenerate Sertifikat di Apple Developer Portal
.cer)Export Sertifikat sebagai .p12
.cer yang didownload untuk ditambahkan ke Keychain.p12 dan set password (simpan password ini!)Buat Provisioning Profile
.mobileprovisionUntuk submission TestFlight otomatis, buat API key:
.p8 (Anda hanya bisa download sekali!)Set kredensial ini sebelum build:
# iOS Signing (Wajib)BUILD_CERTIFICATE_BASE64="<base64-encoded-p12-certificate>"BUILD_PROVISION_PROFILE_BASE64="<base64-encoded-mobileprovision>"P12_PASSWORD="<certificate-password>"
# App Store Connect API (untuk submission)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="00000000-0000-0000-0000-000000000000"APPLE_KEY_CONTENT="<base64-encoded-p8-key>"
# Config TambahanAPP_STORE_CONNECT_TEAM_ID="1234567890"APPLE_PROFILE_NAME="App Store com.example.app"Sertifikat (.p12):
base64 -i YourCertificate.p12 | pbcopyProvisioning Profile (.mobileprovision):
base64 -i YourProfile.mobileprovision | pbcopyApp Store Connect Key (.p8):
base64 -i AuthKey_ABC1234567.p8 | pbcopyString base64 sekarang ada di clipboard Anda - paste ke environment variable atau CI/CD secrets Anda.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode debugIni membuat development build yang dapat diinstal di perangkat terdaftar.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode releaseIni membuat build App Store dan otomatis submit ke TestFlight jika Anda memiliki kredensial App Store Connect API yang dikonfigurasi.
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 releaseProvisioning Mesin (1-2 menit)
Isolasi Pengguna (~10 detik)
job-<jobId>/Users/job-<jobId>Setup Proyek (~30 detik)
Fastlane Build (3-8 menit)
Submission App Store (1-2 menit, jika dikonfigurasi)
Cleanup (segera)
Dismissal Mesin (setelah 24 jam)
Lingkungan build iOS kami mencakup:
Waktu build iOS yang khas:
| Tipe Build | Build Pertama | Build Berikutnya* |
|---|---|---|
| Debug | 5-7 menit | 4-6 menit |
| Release | 7-10 menit | 5-8 menit |
*Build berikutnya mungkin lebih cepat jika mesin yang sama digunakan kembali dalam window 24 jam.
âCode signing failedâ
âProvisioning profile doesnât include signing certificateâ
âApp Store Connect authentication failedâ
âBuild timeout after 10 minutesâ
Semua build logs di-stream real-time. Perhatikan fase-fase kunci ini:
â Machine assigned: m-abc123â Creating user: job-abc123â Installing CocoaPods dependencies...â Building iOS app...â Code signing with certificate...â Uploading to App Store Connect...â Build succeededJika build gagal, error akan ditampilkan dengan jelas di logs dengan pesan error Fastlane/Xcode yang spesifik.
Selalu pastikan build iOS Anda berfungsi secara lokal sebelum menggunakan cloud build:
npx cap open ios# Build di XcodeJangan commit sertifikat atau key ke repository Anda. Selalu gunakan:
Untuk build lebih cepat, pastikan package.json dan Podfile.lock Anda dicommit ke version control.
Perhatikan durasi build untuk optimisasi biaya:
# CLI menampilkan waktu build di akhirBuild succeeded in 6m 42s (13.4 billing minutes at 2Ă rate)