Guide

Compiler une app iOS Capacitor quand vous travaillez sous Windows

Capacitor emballe votre app web dans une coque native. Sous Windows, vous pouvez compiler l’app web et l’app Android. L’app iOS demande Xcode, qui ne tourne que sous macOS. Nous avons testé où passe cette limite avec Capacitor 8.5.3 le 19 octobre 2026. Elle arrive plus tard que la plupart des gens le pensent.

Ce qui marche sous Windows

Nous avons lancé ces étapes sur le runner Windows Server 2025 de GitHub avec Node 22. La documentation de Capacitor demande Node 22 ou plus récent. Toutes les étapes ont réussi.

npm init @capacitor/app@latest capdemo -- --name CapDemo --app-id com.example.capdemo
cd capdemo
npm install
npm run build
npm i @capacitor/android @capacitor/ios
npx cap add android
npx cap add ios
npx cap sync ios

Le build Android de debug a aussi marché avec JDK 21. gradlew.bat assembleDebug a pris 6 minutes 33 secondes sur un runner à froid. Il a produit un app-debug.apk de 8.2 MB.

La surprise, c’est npx cap add ios. Il a tourné sous Windows en moins d’une seconde et a écrit un projet Xcode complet. Voici ce qu’il a affiché :

√ Adding native Xcode project in ios in 47.04ms
[info] All Capacitor plugins have a Package.swift file and will be included in Package.swift
[info] Writing Package.swift
[success] ios platform added!

Swift Package Manager, pas CocoaPods

Les projets Capacitor 8 utilisent Swift Package Manager par défaut. La documentation le recommande et dit que CocoaPods était le choix par défaut avant Capacitor 8. Notre nouveau projet n’avait pas de Podfile. Il avait ios/App/App.xcodeproj et un paquet CapApp-SPM qui pointe vers vos plugins dans node_modules.

C’est pour ça que les étapes iOS marchent maintenant sous Windows. Il n’y a pas de pod install à lancer. Si votre projet utilise encore CocoaPods, pod install demande macOS. Nous n’avons pas testé de projet CocoaPods sous Windows. Pour passer à SPM, la documentation propose npx cap spm-migration-assistant.

Ce qui demande encore un Mac

  • xcodebuild et Xcode. Capacitor 8 demande Xcode 26.0 ou plus récent, et Xcode ne tourne que sous macOS.
  • npx cap open ios et npx cap run ios. Les deux passent le projet à Xcode ou au simulateur.
  • Le simulateur iOS. Il est fourni dans Xcode.
  • La signature, l’archive et l’envoi. Voyez publier sans Mac pour cette partie.

Le passage de Windows au Mac que nous avons testé

Nous avons commité le projet Windows sur git et l’avons déplacé sur un runner Mac. Le .gitignore du dossier ios exclut les fichiers web copiés et la configuration générée. Le Mac les reconstruit donc avant de lancer Xcode :

npm ci
npm run build
npx cap sync ios
xcodebuild -project ios/App/App.xcodeproj -scheme App \
  -configuration Debug -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' \
  -derivedDataPath build build

Le build a pris 36 secondes avec Xcode 26.6. Au premier run, Xcode a récupéré capacitor-swift-pm 8.5.3 sur GitHub. Ensuite, nous avons installé l’app dans le simulateur iPhone 17 Pro et l’avons ouverte. L’écran d’accueil de Capacitor est apparu.

xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/App.app
xcrun simctl launch booted com.example.capdemo

La page iOS de Capacitor dit encore d’ouvrir App.xcworkspace. Un projet SPM n’en a pas, donc ouvrez plutôt ios/App/App.xcodeproj.

Un build pour appareil avec la signature désactivée a aussi réussi en 17 secondes. Ajoutez CODE_SIGNING_ALLOWED=NO et utilisez -sdk iphoneos. Pour publier, ouvrez le projet dans Xcode, choisissez votre équipe dans Signing and Capabilities, puis Product, puis Archive.

Et Ionic Appflow ?

Appflow compile les apps iOS dans le cloud d’Ionic, et sa page le dit toujours. Le 11 février 2025, Ionic a arrêté les nouvelles ventes d’Appflow. Les utilisateurs actuels gardent l’accès jusqu’au 31 décembre 2027. Si vous n’êtes pas déjà client, prévoyez une autre voie.

Louer le Mac pour une étape

Un pass journée MacRun est un Mac mini M6 dédié pour $15, ou $59 pour une semaine. Xcode 27.1 et le simulateur iOS 27.1 sont installés. Node ne l’est pas. Vous avez les droits administrateur et Homebrew, donc vous installez la version de Node que vous utilisez. Vous vous connectez en SSH et en partage d’écran depuis Windows. Le Mac est effacé à la fin du pass. Notre guide sur le simulateur sous Windows montre à quoi ressemble l’écran à distance.

Qui ne devrait pas louer un Mac pour ça

Si vous n’avez besoin d’un build que de temps en temps, un runner macOS hébergé peut s’en charger. Les commandes ci-dessus ont tourné sur GitHub Actions sans aucun Mac à nous. Codemagic indique prendre en charge Ionic et donne aux particuliers 500 minutes macOS M2 gratuites par mois. C’est ce que dit sa page de tarifs au 19 octobre 2026. Si vous publiez chaque semaine, un Mac d’occasion peut revenir moins cher avec le temps. Un Mac loué convient quand vous devez ouvrir Xcode, pour un souci de signature ou un bug de plugin natif.

Questions fréquentes

Puis-je lancer npx cap add ios sous Windows ?

+

Oui, avec Capacitor 8 et Swift Package Manager. Dans notre test d’octobre 2026, il a écrit le projet Xcode sous Windows en moins d’une seconde. npx cap sync ios a marché aussi. Compiler l’app demande quand même un Mac.

Capacitor utilise-t-il CocoaPods ou Swift Package Manager pour iOS ?

+

Les nouveaux projets Capacitor 8 utilisent Swift Package Manager. Notre nouveau projet avait un Package.swift et pas de Podfile. La documentation dit que CocoaPods était le choix par défaut avant Capacitor 8 et qu’il est maintenant facultatif.

Puis-je compiler une app iOS Capacitor sous Windows ?

+

Pas l’app elle-même. L’étape xcodebuild, le simulateur et la signature demandent Xcode sous macOS. Vous pouvez tout préparer sous Windows, le pousser sur git, et compiler sur un Mac ou un runner CI macOS.

Ionic Appflow est-il encore disponible ?

+

Ionic a arrêté les nouvelles ventes d’Appflow le 11 février 2025. Les utilisateurs actuels d’Appflow gardent l’accès jusqu’au 31 décembre 2027, d’après l’annonce d’Ionic.

Puis-je compiler l’app Android sous Windows ?

+

Oui. Dans notre test, npx cap add android et gradlew.bat assembleDebug ont marché sous Windows avec JDK 21. Le premier build a pris 6 minutes 33 secondes et a produit un APK de debug de 8.2 MB.

Combien de temps prend un build iOS Capacitor ?

+

Notre app de départ a été compilée pour le simulateur en 24 à 36 secondes avec Xcode 26.6 sur un runner macOS GitHub. Le temps le plus long incluait le téléchargement des paquets Swift. Les apps plus grosses prennent plus de temps.

Guides associés