La construction traditionnelle d'une application iOS signifie généralement une chose : vous avez besoin de Xcode, et Xcode signifie macOS. Cette contrainte est gênante si votre équipe entière est sur Windows ou Linux, ou si vous n'avez simplement pas envie de maintenir une machine de build Mac.
Le combo de Capacitor (pour générer le projet natif iOS) et Capgo Build (pour compiler et signer en cloud) vous permet de faire des builds iOS et des soumissions à TestFlight à partir d'une station de travail Windows.
Cette guide montre un workflow pragmatique qui fonctionne bien en équipe :
- Développez sur Windows comme un projet web normal.
- Gardez
ios/dans votre dépôt (afin que l'état natif soit réproducible). - Exécutez
cap synclocalement (afin que votre build web soit copié dans le projet iOS). - Déclenchez une build iOS cloud avec Capgo Build.
Ce que vous construisez vraiment où
Il existe deux « builds » séparés dans une application Capacitor :
- Build web (votre JS/HTML/CSS) : vous le faites localement sur Windows.
- Build natif (Archive Xcode, signature, téléchargement) : Capgo La construction effectue cela sur le matériel Mac dans le cloud.
C'est cette séparation qui est la clé : Capgo La construction compile le projet natif, mais elle attend que vos actifs web soient déjà synchronisés dans ios/.
Prérequis
- Un compte Capacitor fonctionnel (n'importe quel framework est acceptable).
- Un compte développeur Apple.
- D'accès à App Store Connect pour l'application que vous souhaitez télécharger (pour TestFlight/App Store).
- Votre compte Capgo et votre jeton API (
CAPGO_TOKEN).
1) Créez ou Préparez votre application Capacitor (Windows)
Si vous avez déjà une application web, sautez directement aux étapes Capacitor.
Exemple avec Vite :
bun create vite@latest my-app
cd my-app
bun install
La construction doit produire des actifs statiques (pour Vite, c'est dist/ par défaut) :
bun run build
2) Ajoutez Capacitor et la plateforme iOS
Installez Capacitor:
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
Initialisez et créez le dossier de la plateforme iOS :
bunx cap init
bunx cap add ios
À ce stade, vous disposerez d'un ios/ répertoire. Commitez-le dans git. Capgo Build compile ce qui est à l'intérieur ios/, donc vous voulez qu'il soit versionné et réproducible.
3) Synchronisez toujours les Web Assets dans iOS avant de construire
Tout changement dans votre application web, faites cette séquence sur Windows :
bun run build
bunx cap sync ios
cap sync est ce qui copie vos web assets construits dans le projet iOS natif (les fichiers Capgo Build seront effectivement compilés).
4) Installez et authentifiez le Capgo CLI
Capgo Build est déclenché via le Capgo CLI. Avec bun, utilisez bunx:
bunx @capgo/cli@latest login
Ou définissez votre jeton via une variable d'environnement dans votre shell/CI :
export CAPGO_TOKEN="your_api_key_here"
5) Configurez la signature iOS pour les builds Cloud
Pour construire iOS, vous avez besoin de matériel de signature :
- Certificat de distribution Apple (
.p12) et son mot de passe - Profil de provisionnement (
.mobileprovision) - App Store Connect API key (
AuthKey_XXXXXX.p8) et les métadonnées (ID de clé, ID émetteur, ID d'équipe)
If you still need to generate these files, follow the Capgo documentation:
- Gestion des informations d'identification (ce que sauvegarder et comment)
- Obtenir les certificats et les profils de provisionnement iOS
La voie la plus facile est : créer/exporter ces éléments une fois (souvent en utilisant n'importe quel Mac disponible, un collègue ou un location pour une fois), puis les réutiliser à partir de Windows pour chaque build ultérieur.
Une fois que vous avez les fichiers localement, enregistrez-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"
Conseil : en CI, stockez les fichiers de clés base64-encodés en tant que secrets, décodez-les en temps de exécution, puis exécutez le même build credentials save commande.
6) Déclenchez une Build iOS à partir de Windows
À partir de votre dossier d'application :
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
Vous verrez des journaux en temps réel dans votre terminal. Si votre clé App Store Connect est configurée, Capgo Build peut soumettre la build résultante à TestFlight automatiquement.
7) Itérez rapidement : Mises à jour en temps réel pour les modifications Web uniquement
Capgo Build est pour les modifications natives :
- ajout/removal de plugins Capacitor
- modification des permissions natives
- modification des icônes/splash
- mise à jour de Capacitor
- toutes les modifications Swift/Objective-C
Pour les ajustements quotidiens de l'interface utilisateur et les corrections JavaScript, vous voulez généralement Mises à jour en temps réel (OTA), afin de ne pas reconstruire le binôme natif à chaque fois.
Un bon flux de travail d'équipe est :
- Utilisez Mises à jour en temps réel pour les modifications web fréquentes.
- Utilisez Capgo Build occasionnellement lorsque des modifications natives sont nécessaires.
Pitfalls Windows courants (et corrections)
- Oublier : si vos modifications d'interface utilisateur manquent dans la build iOS, vous avez probablement construit l'application web mais n'avez pas synchronisé son contenu dans
cap syncNe pas commiter : __CAPGO_KEEP_0__ Build compile le projet natif. Si le dossier n'est pas dans Git (ou pas dans votre contexte de build), la build ne peut pas reproduire votre application.ios/. - Utilisez Mises à jour en temps réel pour les modifications web fréquentes.
ios/Utilisez Capgo Build occasionnellement lorsque des modifications natives sont nécessaires. - Les modifications de plugin ne nécessitent pas une reconstruction nativeL'ajout d'un plugin est une modification native ; planifiez une Capgo Build (et une soumission de magasin) par la suite.
Résumé
Vous ne pouvez pas exécuter Xcode sur Windows, mais vous pouvez expédier des applications iOS à partir de Windows : Enveloppez votre application web avec __CAPGO_KEEP_0__ (
- Wrap your web app with Capacitor (
ios/Construirez les actifs web localement, puis - Utilisez __CAPGO_KEEP_0__ Build pour compiler, signer et soumettre votre fichier binaire iOS à partir du __CAPGO_KEEP_1__.
cap sync. - Continuez avec la construction d'une application iOS à partir de Windows avec Capgo et CLI Build
Keep going from Build an iOS App from Windows with Capacitor and Capgo Build
Vous ne pouvez pas exécuter Xcode sur Windows, mais vous pouvez expédier des applications iOS à partir de Windows : Construire une application iOS à partir de Windows avec Capacitor et Capgo Build pour planifier l'automatisation de CI/CD, la connecter avec Capgo CI/CD pour le flux de travail du produit dans Capgo CI/CD, Capgo Builds natifs pour le flux de travail du produit dans Capgo Builds natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, Intégration CI/CD pour les détails d'implémentation dans Intégration CI/CD, et GitHub Intégration d'actions pour les détails d'implémentation dans GitHub Intégration d'actions.