Compiler une application iOS signifie traditionnellement une chose : il faut Xcode, et Xcode implique macOS. Cette contrainte est pénible si toute votre équipe est sous Windows ou Linux, ou si vous ne voulez tout simplement pas maintenir une machine de build Mac.
La combinaison de Capacitor (pour générer le projet iOS natif) et Build Capgo (pour compiler et signer l'app dans le cloud) vous permet de réaliser des builds iOS et des soumissions TestFlight depuis un poste Windows.
Ce guide présente un workflow pragmatique qui fonctionne parfaitement en équipe :
- Développez sur Windows comme un projet web classique.
- Conservez
ios/dans votre repo (pour que l'état natif soit reproductible). - Exécutez
cap syncen local (pour que votre build web soit copié dans le projet iOS). - Déclenchez un build cloud iOS avec Capgo Build.
Ce que vous buildez réellement et où
Il existe deux « builds » distincts dans une application Capacitor :
- Build web (votre JS/HTML/CSS) : vous faites cela localement sur Windows.
- Build natif (archive Xcode, signature, upload) : Capgo Build effectue cela sur du matériel Mac dans le cloud.
Cette séparation est la clé : Capgo Build compile le projet natif, mais il s'attend à ce que vos assets web soient déjà synchronisés dans ios/.
Prerequisites
- A working Capacitor app (any framework is fine).
- Un compte Apple Developer.
- Un accès à App Store Connect pour l'application que vous souhaitez uploader (pour la soumission TestFlight/App Store).
- Votre compte Capgo et votre token API (
CAPGO_TOKEN).
1) Créer ou préparer votre application Capacitor (Windows)
Si vous avez déjà une application web, passez directement aux étapes Capacitor.
Exemple avec Vite :
bun create vite@latest my-app
cd my-app
bun install
Le build doit produire des assets statiques (pour Vite, c'est dist/ par défaut) :
bun run build
2) Ajoutez Capacitor et la plateforme iOS
Installer Capacitor :
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
Initialiser et créer le dossier de la plateforme iOS :
bunx cap init
bunx cap add ios
À ce stade, vous aurez un ios/ répertoire. Commitez-le sur git. Capgo Build compile le contenu ios/, il doit donc être versionné et reproductible.
3) Synchronisez toujours les assets web vers iOS avant le build
Chaque fois que vous modifiez votre application web, suivez cette séquence sur Windows :
bun run build
bunx cap sync ios
cap sync ce qui copie vos assets web compilés dans le projet iOS natif (les fichiers que Capgo Build va réellement compiler).
4) Installez et authentifiez le Capgo CLI
Le build de Capgo est déclenché via le Capgo CLI. Avec bun, utilisez bunx:
bunx @capgo/cli@latest login
Ou configurez votre token via une variable d'env dans votre shell/CI :
export CAPGO_TOKEN="your_api_key_here"
5) Configurez la signature iOS pour les builds cloud
To build iOS you need signing material:
- Certificat Apple Distribution (
.p12) et son mot de passe - Profil de provisionnement (
.mobileprovision) - Clé API App Store Connect (
AuthKey_XXXXXX.p8) et les métadonnées (Key ID, Issuer ID, Team ID)
Si vous devez encore générer ces fichiers, suivez la documentation Capgo :
- Gestion des identifiants (quoi sauvegarder et comment)
- Comment obtenir les certificats et profils de provisionnement iOS
La méthode la plus simple : créez ou exportez-les une seule fois (souvent avec un Mac disponible, un collègue ou une location ponctuelle), puis réutilisez-les depuis Windows pour chaque build ultérieur.
Une fois les fichiers en local, sauvegardez-les pour 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"
Astuce : en CI, stockez les fichiers d'identifiants encodés en base64 dans vos secrets, décodez-les au runtime, puis lancez la même commande build credentials save commande.
6) Déclenchez un build iOS depuis Windows
Depuis le dossier de votre application :
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
Vous verrez les logs en temps réel dans votre terminal. Si votre clé App Store Connect est configurée, Capgo Build peut envoyer automatiquement le build obtenu sur TestFlight.
7) Itérez vite : live updates pour les modifications web uniquement
Capgo Build est destiné aux changements natifs :
- l'ajout ou la suppression de Capacitor plugins
- la modification des permissions natives
- modification des icônes/splash
- mise à jour de Capacitor
- tout changement Swift/Objective-C
Pour les ajustements d'UI quotidiens et les corrections JavaScript, vous voudrez généralement Live Update(s) (OTA), afin de ne pas recompiler le binaire natif à chaque fois.
Un bon workflow d'équipe est :
- Utiliser Live Updates pour les changements web fréquents.
- Utiliser Capgo Build occasionnellement quand des changements natifs sont nécessaires.
Pièges courants sur Windows (et solutions)
- Oublier
cap sync: si vos changements UI manquent dans le build iOS, vous avez probablement compilé l'app web mais ne l'avez pas synchronisée dansios/. - Non commitée
ios/: Le Capgo Build compile le projet natif. Si le dossier n'est pas dans git (ou pas dans votre contexte de build), le build ne pourra pas reproduire votre app. - Modifications de plugins sans rebuild natif: ajouter un plugin est un changement natif ; prévoyez un Capgo Build (et une soumission sur les stores) par la suite.
Résumé
Vous ne pouvez pas lancer Xcode sur Windows, mais vous pouvez déployer des apps iOS depuis Windows :
- Enveloppez votre web app avec Capacitor (
ios/dans votre repo). - Compilez vos assets web localement, puis
cap sync. - Utilisez Capgo Build pour compiler, signer et soumettre votre binaire iOS depuis le CLI.
Continuer la lecture : Compiler une app iOS depuis Windows avec Capacitor et Capgo Build
Si vous utilisez Compilez une app iOS depuis Windows avec Capacitor et Capgo Build pour planifier l'automatisation CI/CD, et le connecter avec CI/CD Capgo pour le workflow produit dans le CI/CD de Capgo, Capgo Native Build pour le workflow produit dans les Native Builds de Capgo, Intégrations Capgo pour le workflow produit dans les intégrations de Capgo, Intégration CI/CD pour le détail d'implémentation dans l'intégration CI/CD, et Intégration GitHub Actions pour les détails d'implémentation de l'intégration GitHub Actions.