Jede Woche fragt jemand, ob eine Capacitor App für iOS von einem Windows- oder Linux-Rechner aus gebaut, getestet und veröffentlicht werden kann. Die ehrliche Antwort: Ja, für fast alles, mit einer kurzen Liste von Ausnahmen. Diese Seite ist die Referenz: jeder Task, ob er macOS braucht, und was man stattdessen macht.
Die vollständige Task-Liste
| Aufgabe | macOS erforderlich? | So geht's unter Windows oder Linux |
|---|---|---|
| App schreiben, im Browser ausführen | Nein | Jeder Editor, jedes OS |
| Anmeldung beim Apple Developer Program | Nein | Browser |
| App ID und App Store Connect-Eintrag erstellen | Nein | Browser |
| Distribution-Zertifikat | Nein | OpenSSL oder der Zertifikats-Generator |
| Provisioning-Profil | Nein | Apple Developer Portal |
| App Store Connect API Key | Nein | App Store Connect Website |
cap add ios, cap sync ios |
Nein | Capacitor CLI, CocoaPods-Warnung ist normal |
| IPA kompilieren und signieren | Ja | Capgo Build führt Xcode in der Cloud aus |
| Upload zu TestFlight | Ja, normalerweise | Capgo Build lädt mit deinem API Key hoch |
| Zur App Store Review einreichen | Nein | App Store Connect Website |
| Zum Testen auf einem iPhone installieren | Nein | TestFlight-App oder Ad-hoc-IPA-Link |
| Updates nach dem Release pushen | Nein | Capgo Live Updates |
| iOS-Simulator | Ja | Kein Ersatz; nutze ein echtes iPhone |
| Safari Web Inspector auf iOS | Ja | Remote Logging, Chrome DevTools auf Android für den Web-Layer |
| Xcode Debugger für Native Crashes | Ja | Miete bei Bedarf einen Mac stundenweise |
Bearbeiten Info.plist, Entitlements, Icons |
Nein | Nur Text- und Bilddateien in ios/ |
| Füge ein Capacitor Plugin mit nativem iOS code hinzu | Nein | Installieren, cap sync ios, Cloud Build |
| Schreibe eigenen Swift code Code | Teilweise | In jedem Editor bearbeiten; Compile-Errors erscheinen im Cloud Build Log |
Warum der Compile macOS benötigt
Apple liefert das iOS SDK nur xcodebuild und codesign für macOS aus, und die Lizenz bindet sie an Apple-Hardware. Es gibt keine unterstützte Linux- oder Windows-Toolchain, die ein Store-konformes IPA erzeugt. Projekte, die iOS von Linux aus cross-compilen, existieren zwar zu Forschungszwecken, können aber nicht signiert werden und werden von App Store Connect nicht akzeptiert. Deshalb führt jeder funktionierende „No-Mac“-Workflow genau einen Schritt zu einer macOS-Maschine: den Compile.
Die drei Wege zu dieser Maschine:
- Buy a Mac. Einfach, aber du musst ihn jedes Mal updaten, wenn Apple die Mindestversion von Xcode erhöht. Seit April 2026 ist das Xcode 26, was ein aktuelles macOS erfordert.
- Miete einen Mac in der Cloud. Volle Kontrolle, voller Wartungsaufwand und Stundenkosten, egal ob du gerade buildest oder nicht.
- Nutze einen Build-Service. Du schickst das Projekt ab und erhältst ein signiertes IPA zurück oder es wird hochgeladen. Capgo Build ist diese Option – immer mit dem aktuellen Xcode gepflegt, sodass die Apple-Deadlines kein Problem für dich sind.
Der minimale No-Mac-Workflow
# 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
Der erste Block generiert das Projekt und speichert die Signing-Credentials. Der zweite erstellt einen signierten Build und sendet ihn an TestFlight. Der dritte überspringt den Native Build komplett bei Web-Änderungen.
Detaillierte Anleitungen: von Windows und von Linux.
Zertifikate ohne Keychain Access
Der Teil, der viele abschreckt. In der Praxis sind es nur drei OpenSSL-Befehle und zwei Browser-Seiten:
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
Erstelle dann das App Store Provisioning Profile im Portal und den API Key in App Store Connect. iOS-Zertifikate und Provisioning Profiles erklärt geht jeden Typ und jeden Fehler durch.
Testen ohne Simulator
Nutze ein echtes iPhone. Der Build landet wenige Minuten nach Abschluss des Cloud-Builds in TestFlight, und interne Tester können die Beta App Review überspringen. Für Geräte außerhalb deines Teams fordere einen ad hoc Build mit --ios-distribution ad_hoc --output-upload und teile den Link. Der Testing-Guide deckt alles ab, inklusive Debugging ohne Safari.
Native code und Plugins
Ein Community-Plugin hinzuzufügen ist ein bun add und einen cap sync ios; der Swift code wird in der Cloud kompiliert. Eigener Swift-Code für ein Custom-Plugin funktioniert ebenfalls in jedem Editor. Du verzichtest zwar auf Autocomplete und sofortiges Compile-Feedback, daher ist der pragmatische Weg: Halte den nativen Teil klein, kompiliere früh mit einem Debug Cloud Build und lies die Fehler aus dem Xcode-Log-Stream. --ai-analytics macht aus einem fehlgeschlagenen Build eine Diagnose in einfacher Sprache.
Wann die Miete eines Macs doch die richtige Wahl ist
- Ein Native Crash, den du aus den Logs nicht erklären kannst und für den du den Xcode-Debugger benötigst.
- Ein Plugin-Autor, der täglich an Swift arbeitet.
- Ein erstmaliges App Store Setup, bei dem du die Xcode Signing-UI einmal sehen willst, um sie zu verstehen.
Keines davon ist ein wöchentliches Ereignis für ein typisches Capacitor Team. Eine Stunde gemietete Mac-Zeit ist günstiger als ein Mac pro Entwickler.
Verwandte Setup-Guides
- Capacitor Entwicklung unter Windows
- Capacitor-Entwicklung unter Linux
- Capacitor mit WSL2 unter Windows
- Live Reload auf Android von Windows und Linux
- Android Release Builds ohne Android Studio
Zusammenfassung
Capacitor auf Windows oder Linux umfasst Design, code, Android, Zertifikate, TestFlight und App Store Submission. Nur der Compile ist Apple-exklusiv, und Capgo Build übernimmt das. Mit Live Updates für den Web-Layer liefert ein Team ohne Mac iOS im gleichen Rhythmus wie Android aus.