Chaque semaine, on nous demande s'il est possible de compiler, tester et publier une application Capacitor pour iOS depuis une machine Windows ou Linux. La réponse honnête est oui pour presque tout, à quelques exceptions près. Cette page fait foi : chaque tâche, son besoin ou non de macOS, et les alternatives possibles.
La liste complète des tâches
| Tâche | Besoin de macOS ? | Comment faire depuis Windows ou Linux |
|---|---|---|
| Écrivez l'app, lancez-la dans un navigateur | Non | N'importe quel éditeur, n'importe quel OS |
| Inscription au Apple Developer Program | Non | Navigateur |
| Créer l'App ID et l'enregistrement App Store Connect | Non | Navigateur |
| Certificat de distribution | Non | OpenSSL ou le générateur de certificats |
| Profil de provisionnement | Non | Portail Apple Developer |
| Clé API App Store Connect | Non | Site web App Store Connect |
cap add ios, cap sync ios |
Non | Capacitor CLI, l'avertissement CocoaPods est attendu |
| Compiler et signer l'IPA | Oui | Build Capgo exécute Xcode dans le cloud |
| Envoyer vers TestFlight | Oui, normalement | Capgo Les uploads de build utilisent votre clé API |
| Soumettre pour examen sur l'App Store | Non | Site web App Store Connect |
| Installer sur un iPhone pour tester | Non | App TestFlight ou lien IPA ad hoc |
| Pousser des mises à jour après la release | Non | Capgo Live Updates |
| Simulateur iOS | Oui | Aucun substitut ; utilisez un iPhone réel |
| Safari Web Inspector sur iOS | Oui | Logs à distance, Chrome DevTools sur Android pour la couche web partagée |
| Debugger Xcode pour les crashs natifs | Oui | Louez un Mac à l'heure si besoin |
Modifier Info.plist, entitlements, icônes |
Non | Fichiers texte et images inclus ios/ |
| Ajoutez un plugin Capacitor avec code natif pour iOS | Non | Installer, cap sync ios, build cloud |
| Écrivez du code Swift personnalisé | Partiellement | Edit in any editor; compile errors surface in the cloud build log |
Pourquoi la compilation nécessite macOS
Apple fournit l'SDK pour iOS, xcodebuild et codesign uniquement pour macOS, et la licence les lie au matériel Apple. Il n'existe aucune toolchain Linux ou Windows supportée capable de produire un IPA accepté par les stores. Des projets de cross-compilation iOS depuis Linux existent à des fins de recherche, mais ils ne sont pas signés et ne sont pas acceptés par App Store Connect. C'est pourquoi tout workflow fonctionnel « sans Mac » nécessite une étape sur une machine macOS : la compilation.
Les trois façons d'obtenir cette machine :
- Acheter un Mac. Simple, mais il nécessite des mises à jour dès qu'Apple augmente la version minimale d'Xcode. Depuis avril 2026, il s'agit d'Xcode 26, qui requiert un macOS récent.
- Louer un Mac dans le cloud. Contrôle total, charge de maintenance complète, coût horaire que vous compiliez ou non.
- Utiliser un service de build. Vous envoyez le projet, il renvoie un IPA signé ou l'envoie. Capgo Build est cette option, maintenue avec l'Xcode actuel pour que les échéances d'Apple ne soient plus votre problème.
Le workflow minimal sans 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
Le premier bloc génère le projet et enregistre les identifiants de signature. Le deuxième produit un build signé et l'envoie sur TestFlight. Le troisième ignore complètement le build natif pour les changements web.
Guides détaillés : depuis Windows et depuis Linux.
Les certificats sans Keychain Access
La partie qui fait peur. En pratique, il s'agit de trois commandes OpenSSL et de deux pages web :
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
Ensuite, créez le profil de provisionnement App Store dans le portail et la clé API dans App Store Connect. les certificats iOS et les profils de provisionnement expliqués passe en revue chaque type et chaque erreur.
Tester sans le Simulateur
Utilisez un iPhone réel. Le build arrive sur TestFlight quelques minutes après la fin du build cloud, et les testeurs internes évitent la Beta App Review. Pour les appareils hors de votre équipe, demandez un build ad hoc avec --ios-distribution ad_hoc --output-upload et partagez le lien. Le guide de test couvre tout le processus, y compris comment débugger sans Safari.
Native code et les plugins
Ajouter un plugin communautaire est une bun add et une cap sync ios; le code Swift est compilé dans le cloud. Écrire votre propre Swift pour un plugin personnalisé fonctionne aussi depuis n'importe quel éditeur. Vous perdez l'autocomplétion et le feedback de compilation instantané, l'approche pratique consiste donc à garder la partie native légère, à compiler tôt avec un build cloud de debug, et à lire les erreurs via le flux de logs Xcode. --ai-analytics transforme un build échoué en un diagnostic en langage clair.
Quand louer un Mac reste la bonne option
- Un crash natif inexplicable via les logs qui nécessite le debugger Xcode.
- Un auteur de plugin qui itère sur Swift quotidiennement.
- Une première configuration App Store où vous voulez voir l'interface de signing d'Xcode une fois pour la comprendre.
Rien de tout cela n'est un événement hebdomadaire pour une équipe Capacitor typique. Une heure de Mac louée quand le besoin se présente coûte moins cher qu'un Mac par développeur.
Guides de configuration associés
- Développement Capacitor sur Windows
- Développement Capacitor sur Linux
- Capacitor avec WSL2 sur Windows
- Live reload sur Android depuis Windows et Linux
- Builds de release Android sans Android Studio
Résumé
Le développement Capacitor sur Windows ou Linux couvre le design, code, Android, les certificats, TestFlight et la publication sur l'App Store. Seule la compilation est réservée à Apple, et Capgo Build s'en occupe. Avec les Live Updates pour la couche web, une équipe sans aucun Mac déploie sur iOS au même rythme que sur Android.