Building an iOS app secara tradisional berarti satu hal: Anda memerlukan Xcode, dan Xcode berarti macOS. Konstrain ini sangat mengganggu jika tim Anda seluruhnya berada di Windows atau Linux, atau jika Anda hanya tidak ingin menjaga mesin pembangunan Mac.
Kombinasi dari Capacitor (untuk menghasilkan proyek iOS native) dan Capgo Build (untuk mengompilasi dan menandatanganinya di cloud) memungkinkan Anda melakukan pembangunan iOS dan pengiriman ke TestFlight dari sebuah workstation Windows.
Guid ini menunjukkan alur kerja yang praktis yang berfungsi dengan baik di tim:
- Pembangunan di Windows seperti proyek web normal.
- Tetapkan
ios/di repositori Anda (agar keadaan native dapat direproduksi). - Jalankan
cap syncsecara lokal (agar pembangunan web Anda dicopy ke proyek iOS). - Trigger sebuah build iOS di awan dengan Capgo Build.
Apa yang Anda Bangun di Mana
Ada dua jenis “build” dalam sebuah aplikasi Capacitor:
- Build Web (JS/HTML/CSS Anda): Anda melakukan ini secara lokal di Windows.
- Build Nativ (arsip Xcode, tanda tangan, unggah): Capgo Build melakukan ini di perangkat Mac di awan.
Penyebutan ini adalah kunci: Capgo Build mengompilasi proyek natif, tetapi ia mengharapkan aset web Anda sudah disinkronkan ke ios/.
Prasyarat
- Aplikasi Capacitor yang berfungsi (apapun frameworknya).
- Akun Pengembang Apple.
- Akses ke App Store Connect untuk aplikasi yang Anda ingin unggah (untuk TestFlight/Pengiriman ke App Store).
- Rekening Capgo Anda dan API token (
CAPGO_TOKEN).
1) Buat atau Siapkan Aplikasi Capacitor Anda (Windows)
Jika Anda sudah memiliki aplikasi web, lewati ke langkah-langkah Capacitor.
Contoh dengan Vite:
bun create vite@latest my-app
cd my-app
bun install
Pembangunan harus menghasilkan aset statis (untuk Vite ini adalah) dist/ 2) Tambahkan __CAPGO_KEEP_0__ dan Platform iOS
bun run build
Pasang Capacitor:
Install Capacitor:
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
Pada titik ini Anda akan memiliki sebuah
bunx cap init
bunx cap add ios
direktori. Kirimkannya ke git. __CAPGO_KEEP_0__ Build mengompilasi apa yang ada di dalamnya ios/ directory. Commit it to git. Capgo Build compiles what is inside ios/1) Buat atau siapkan aplikasi __CAPGO_KEEP_0__ Anda (Windows)
3) Selalu Sinkronkan Asset Web ke iOS Sebelum Membangun
Setiap kali Anda mengubah aplikasi web, lakukan urutan ini pada Windows:
bun run build
bunx cap sync ios
cap sync adalah apa yang mengcopy asset web yang dibangun ke proyek iOS native (file-file Capgo Build akan sebenarnya dikompilasi).
4) Pasang dan Otentikasi Capgo CLI
Capgo Build diaktifkan melalui Capgo CLI. Dengan bun, gunakan bunx:
bunx @capgo/cli@latest login
atau atur token Anda melalui variabel lingkungan di shell/CI:
export CAPGO_TOKEN="your_api_key_here"
5) Konfigurasi Tanda Tangan iOS untuk Build di Cloud
Untuk membangun iOS Anda membutuhkan materi tanda tangan:
- Sertifikat distribusi Apple (
.p12) dan kata sandinya - Profil pengaturan (
.mobileprovision) - Kunci App Store Connect API (
AuthKey_XXXXXX.p8dan metadata (ID Kunci, ID Pengemis, ID Tim)
Jika Anda masih perlu menghasilkan file-file ini, ikuti dokumentasi Capgo di bawah ini:
- Pengelolaan Kredensial (apa yang harus disimpan dan bagaimana)
- Cara Mendapatkan Sertifikat dan Profil Pengaturan iOS
Jalan tercepat adalah: buat/export file-file ini sekali (sering menggunakan Mac apa pun, rekan tim, atau sewa satu kali), kemudian gunakan kembali dari Windows untuk setiap build berikutnya.
Setelah Anda memiliki file-file tersebut secara lokal, simpan mereka untuk Capgo Build:
bunx @capgo/cli@latest build credentials save \
--platform ios \
--certificate ./cert.p12 \
--p12-password "password" \
--provisioning-profile ./profile.mobileprovision \
--apple-key ./AuthKey.p8 \
--apple-key-id "KEY123" \
--apple-issuer-id "issuer-uuid" \
--apple-team-id "team-id"
Trik: di CI, simpan file-file kredit base64-encoding sebagai rahasia, dekod mereka pada waktu runtime, kemudian jalankan perintah yang sama. build credentials save 6) Jalankan Build iOS dari Windows
Dari folder aplikasi Anda:
Anda akan melihat log waktu nyata di terminal. Jika kunci App Store Connect Anda sudah terkonfigurasi, __CAPGO_KEEP_0__ Build dapat mengirimkan build hasilnya ke TestFlight secara otomatis.
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
You will see real-time logs in your terminal. If your App Store Connect key is configured, Capgo Build can submit the resulting build to TestFlight automatically.
7) Iterasi Cepat: Perbaruan Langsung untuk Perubahan Web-Only
Capgo Build adalah untuk perubahan native:
- menambahkan/menghapus Capacitor plugin
- mengubah izin native
- mengubah ikon/splash
- mengupdate Capacitor
- mengubah perubahan Swift/Objective-C
Untuk perubahan UI sehari-hari dan perbaikan JavaScript, Anda biasanya ingin Perbaruan Langsung (OTA), sehingga Anda tidak perlu membangun biner native setiap kali.
Alur kerja tim yang baik adalah:
- Pakai Perbaruan Langsung untuk perubahan web yang sering.
- Gunakan Capgo Build secara berkala ketika perubahan native diperlukan.
Pitfalls Windows Umum (dan Solusi)
- Lupa
cap sync: jika perubahan UI Anda tidak muncul di build iOS, kemungkinan besar Anda telah membangun aplikasi web tetapi tidak menyinkronkannya keios/. - Tidak mengkomit
ios/: Capgo Build mengompilasi proyek native. Jika folder tidak ada di git (atau tidak ada di konteks build Anda), maka build tidak dapat mereproduksi aplikasi Anda. - Perubahan plugin tanpa rebuild native: menambahkan plugin adalah perubahan native; rencanakan untuk menjalankan Capgo Build (dan pengiriman ke toko) setelahnya.
Ringkasan
Anda tidak dapat menjalankan Xcode di Windows, tetapi Anda dapat mengirimkan aplikasi iOS dari Windows:
- Kompilasi aplikasi web Anda dengan Capacitor (
ios/dalam repositori Anda). - Bangun aset web secara lokal, kemudian
cap sync. - Gunakan Capgo Build untuk mengompilasi, menandatangani, dan mengirimkan binary iOS Anda dari CLI.
Teruskan dari Membangun Aplikasi iOS dari Windows dengan Capacitor dan Capgo Build
Jika Anda menggunakan Membangun Aplikasi iOS dari Windows dengan Capacitor dan Capgo Build untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Native Builds untuk alur kerja produk di Capgo Native Builds, Integrasi Capgo untuk alur kerja produk di Integrasi Capgo Pengintegrasian CI/CD untuk detail implementasi di Pengintegrasian CI/CD, dan Pengintegrasian Aksi GitHub untuk detail implementasi di Pengintegrasian Aksi GitHub