Every week someone asks whether a Capacitor app can be built, tested and released for iOS from a Windows or Linux machine. The honest answer is yes for almost everything, with a short list of exceptions. This page is the reference: each task, whether it needs macOS, and what to do instead.
La liste des tâches complète
| Task | Besoin de macOS ? | Comment procéder depuis Windows ou Linux ? |
|---|---|---|
| Écrire l'application, exécuter dans un navigateur | Non | Tout éditeur, tout OS |
| Inscription au programme Apple Developer | Non | Navigateur |
| Create App ID, App Store Connect record | Non | Navigateur |
| Certificat de distribution | No | OpenSSL ou le générateur de certificat |
| profil de provisionnement | No | Portail du développeur Apple |
| Clé d'App Store Connect API | No | Site web App Store Connect |
cap add ios, cap sync ios |
No | Capacitor CLI, une alerte CocoaPods est attendue |
| Compiler et signer l'IPA | Oui | Capgo Build exécute Xcode dans le cloud |
| Télécharger sur TestFlight | Oui, normalement | Capgo Build télécharge avec votre API clé |
| Soumettre pour examen de l'App Store | Non | Site web d'App Store Connect |
| Installer sur un iPhone pour les tests | Non | TestFlight app, or ad hoc IPA link |
| Mises à jour après la mise en production | Non | Capgo Mises à jour en direct |
| Simulateur iOS | Oui | Pas de substitut; utilisez un vrai iPhone |
| Mise à jour en direct | Oui | Journalisation à distance, Chrome DevTools sur Android pour la couche web partagée |
| Inspecteur Web Safari sur iOS | Oui | Louez un Mac par heure en cas de besoin |
Modifier Info.plistentités, icônes, |
Non | Fichiers de texte et d'image ios/ |
| Ajoutez un plugin Capacitor avec une code iOS native | Non | Installer, cap sync ios, build cloud |
| Écrivez un code Swift personnalisé | Partiellement | Edit in any editor; compile errors surface in the cloud build log |
Pourquoi la compilation nécessite macOS
Apple livre l'SDK iOS, xcodebuild et codesign only for macOS, and the license ties them to Apple hardware. There is no supported Linux or Windows toolchain that produces a store-accepted IPA. Projects that cross-compile iOS from Linux exist for research purposes, but they do not sign and are not accepted by App Store Connect. That is why every working “no Mac” workflow moves exactly one step to a macOS machine: the compile.
Les trois façons pour obtenir cet appareil :
- Achetez un Mac. Simple, but now it needs updates every time Apple raises the minimum Xcode. Since April 2026 that is Xcode 26, which requires a recent macOS.
- Utiliser un service de construction. Vous envoyez le projet, il vous retourne un IPA signé ou le télécharge.
- Le workflow minimal sans Mac You send the project, it returns a signed IPA or uploads it. Capgo Build is this option, maintained with the current Xcode so the Apple deadline is not your problem.
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
The first block generates the project and saves signing credentials. The second produces a signed build and sends it to TestFlight. The third skips the native build entirely for web changes.
Démarches détaillées : à partir de Windows et du Linux.
Certificats sans accès à Keychain
La partie qui effraie les gens. En pratique, il s'agit de trois commandes OpenSSL et deux pages de navigateur.
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
Créez ensuite le profil de provisionnement App Store dans le portail et la clé API dans App Store Connect. Certificats iOS et profils de provisionnement expliqués passera par tous les types et les erreurs.
Passent en revue tous les types et les erreurs.
Use a real iPhone. The build lands in TestFlight a few minutes after the cloud build completes, and internal testers skip Beta App Review. For devices outside your team, request an ad hoc build with --ios-distribution ad_hoc --output-upload et partagez le lien. Le guide de test couvre toute l'échelle, y compris la débogage sans Safari.
Native code et plugins
L'ajout d'un plugin de la communauté est un bun add et un cap sync ios; le Swift code est compilé dans le cloud. L'écriture de votre propre Swift pour un plugin personnalisé fonctionne également à partir de tout éditeur. Vous perdez l'autocomplétion et la mise à jour instantanée, donc l'approche pratique est de garder la partie native petite, de compiler tôt avec une build de débogage cloud, et de lire les erreurs à partir du journal Xcode en streaming. --ai-analytics transforme une build échouée en un diagnostic en langage clair.
Lorsque la location d'un Mac est toujours la bonne option
- Un crash natif que vous ne pouvez pas expliquer à partir des journaux et dont vous avez besoin du débogueur Xcode.
- Un auteur de plugin qui itère quotidiennement sur Swift.
- Une première configuration de l'App Store où vous souhaitez voir l'interface de signature Xcode une fois pour la comprendre.
None de ces événements sont des événements hebdomadaires pour une équipe Capacitor typique. Une heure de temps de Mac loué lorsque cela se produit est moins chère qu'un Mac par développeur.
Guides de configuration connexes
- Développement de Capacitor sur Windows
- Développement de Capacitor sur Linux
- Développement de Capacitor avec WSL2 sur Windows
- Rechargement en direct sur Android à partir de Windows et Linux
- Constructions de version finale d'Android sans Android Studio
Résumé
Développement de Capacitor sur Windows ou Linux couvre la conception, code, Android, les certificats, TestFlight et la soumission de l'App Store. Seule la compilation est Apple-only, et Capgo Build s'en charge. Avec les Mises à jour en direct pour la couche web, une équipe sans Mac du tout expédie l'iOS sur le même rythme que l'Android.