Setiap minggu ada orang yang bertanya apakah sebuah aplikasi Capacitor dapat dibangun, diuji dan dirilis untuk iOS dari sebuah mesin Windows atau Linux. Jawaban yang jujur adalah ya untuk hampir semua hal, dengan daftar singkat kecuali. Halaman ini adalah referensi: setiap tugas, apakah memerlukan macOS, dan apa yang harus dilakukan sebaliknya.
Daftar Tugas Lengkap
| Tugas | Perlu macOS? | Bagaimana melakukannya dari Windows atau Linux |
|---|---|---|
| Tulis aplikasi, jalankan di browser | Tidak | Apa pun editor, apa pun OS |
| Pendaftaran Program Pengembang Apple | Tidak | Browser |
| Buat ID Aplikasi, Catatan App Store Connect | Tidak | Browser |
| Sertifikat Distribusi | No | OpenSSL atau generator sertifikat generator sertifikat |
| Profil Pengaturan Apple | No | Portal Pengembang Apple |
| Kunci API App Store Connect | No | Situs App Store Connect |
cap add ios, cap sync ios |
No | Capacitor CLI, Peringatan CocoaPods diharapkan |
| Kompile dan tandatangani IPA | Ya | Capgo Build Jalankan Xcode di cloud |
| Unggah ke TestFlight | Ya, biasanya | Capgo Build unggah dengan kunci API Anda |
| Kirimkan untuk tinjauan App Store | Tidak | Situs web App Store Connect |
| Instal di iPhone untuk tes | Tidak | Aplikasi TestFlight, atau tautan IPA ad hoc |
| Push update setelah rilis | Tidak | Capgo Live Updates |
| Pengujian Simulator iOS | Iya | Tidak ada pengganti; gunakan iPhone asli |
| Pengujian Web Safari pada iOS | Iya | Pengujian jarak jauh, Chrome DevTools pada Android untuk layer web bersama |
| Pengujian debugger Xcode untuk crash native | Iya | Sewa Mac per jam ketika itu terjadi |
Ubah Info.plist, hak akses, ikon |
Tidak | File teks biasa dan gambar di ios/ |
| Tambahkan plugin Capacitor dengan code iOS native | Tidak | Install, cap sync ios, build awan |
| Tulis kode Swift code | Sedikit | Ubah di editor mana saja; kesalahan kompilasi muncul di log build awan |
Mengapa kompilasi memerlukan macOS
Apple mengirimkan iOS SDK, xcodebuild dan codesign Tidak ada toolchain Linux atau Windows yang didukung untuk menghasilkan IPA yang diterima toko. Projek yang mengompilasi iOS dari Linux ada untuk tujuan penelitian, tetapi mereka tidak menandatangani dan tidak diterima oleh App Store Connect. Itulah mengapa setiap workflow yang berhasil “tidak menggunakan Mac” bergerak tepat satu langkah ke mesin macOS: kompile.
Tiga cara untuk mendapatkan mesin tersebut:
- Beli Mac. Sederhana, tetapi sekarang perlu diperbarui setiap kali Apple meningkatkan Xcode minimal. Sejak April 2026, itu adalah Xcode 26, yang memerlukan macOS yang lebih baru.
- Sewa Mac di awan. Penuh kontrol, penuh tanggung jawab perawatan, biaya per jam, baik Anda membangun atau tidak.
- Pakai layanan pembangunan. Anda kirimkan proyek, dan mereka mengembalikan IPA yang ditandatangani atau mengunggahnya. Capgo Pembangunan adalah pilihan ini, yang dipelihara dengan Xcode saat ini, sehingga batas waktu Apple bukanlah masalah Anda.
Workflow minimal tanpa Mac
# once
bunx cap add ios
bunx @capgo/cli@latest build init --platform ios
# every native release
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build request com.example.app --platform ios --build-mode release
# every web-only change
bunx @capgo/cli@latest bundle upload --channel production
Block pertama menghasilkan proyek dan menyimpan kunci tanda tangan. Block kedua menghasilkan build yang ditandatangani dan mengirimkannya ke TestFlight. Block ketiga melompati pembangunan asli untuk perubahan web.
Langkah-langkah detail: dari Windows dan dari Linux .
Sertifikat tanpa Akses Keychain
Bagian yang membuat orang takut. Pada kenyataannya, itu hanya tiga perintah OpenSSL dan dua halaman browser:
openssl genrsa -out ios_distribution.key 2048
openssl req -new -key ios_distribution.key -out ios_distribution.csr -subj "/emailAddress=you@example.com/CN=Your Name/C=US"
# upload the CSR in the Apple Developer portal, download distribution.cer
openssl x509 -in distribution.cer -inform DER -out distribution.pem -outform PEM
openssl pkcs12 -export -inkey ios_distribution.key -in distribution.pem -out ios_distribution.p12 -legacy
Kemudian buat profil pengaturan App Store di portal dan kunci API di App Store Connect. Sertifikat dan profil pengaturan iOS dijelaskan menjelajahi semua jenis dan kesalahan.
Pengujian tanpa Simulator
Gunakan iPhone asli. Pembangunan tiba di TestFlight beberapa menit setelah pembangunan awan selesai, dan tester internal melewatkan Uji Coba Aplikasi. Untuk perangkat di luar tim Anda, minta pembangunan ad hoc dengan --ios-distribution ad_hoc --output-upload dan bagikan tautan. The Petunjuk Uji Coba Mengulas seluruh tahapan, termasuk cara debugging tanpa menggunakan Safari.
Native code dan plugin
Menambahkan plugin komunitas adalah bun add dan sebuah cap sync ios; Swift code yang dikompilasi di cloud. Menulis kode Swift sendiri untuk plugin kustom juga dapat dilakukan dari editor mana saja. Anda kehilangan autocomplete dan feedback kompilasi instan, sehingga pendekatan praktis adalah menjaga bagian native kecil, mengompilasi awal dengan build cloud debug, dan membaca kesalahan dari log Xcode yang disiarkan. --ai-analytics Mengubah build gagal menjadi diagnosis bahasa sederhana.
Ketika menyewa Mac masih merupakan pilihan yang tepat
- Kecelakaan native yang tidak dapat dijelaskan dari log dan memerlukan debugger Xcode.
- Seorang pengembang plugin yang beriterasi pada Swift setiap hari.
- Penyiapan App Store pertama kali di mana Anda ingin melihat UI tanda tangan Xcode sekali untuk memahaminya.
None of these are weekly events for a typical Capacitor team. An hour of rented Mac time when they happen is cheaper than a Mac per developer.
Guidan setup terkait
- Pengembangan Capacitor pada Windows
- Pengembangan Capacitor pada Linux
- Pengembangan Capacitor dengan WSL2 pada Windows
- Muat ulang langsung pada Android dari Windows dan Linux
- Pembuatan rilis Android tanpa Android Studio
Ringkasan
Pengembangan Capacitor pada Windows atau Linux mencakup desain, code, Android, sertifikat, TestFlight, dan pengajuan App Store. Hanya proses kompilasi yang spesifik Apple, dan Capgo Build yang mengelola hal tersebut. Dengan Live Updates untuk layer web, tim yang tidak memiliki Mac sama sekali dapat mengirimkan iOS dengan ritme yang sama dengan Android.