Traditionell bedeutet die Erstellung einer iOS-App eine Sache: Sie benötigen Xcode, und Xcode bedeutet macOS. Diese Einschränkung ist ärgerlich, wenn Ihr gesamtes Team auf Windows oder Linux ist oder wenn Sie einfach keinen Mac-Build-Computer aufrechterhalten möchten.
Die Combo von Capacitor (um die native iOS-Projektdatei zu generieren) und Capgo Build Lassen Sie es (um es zu kompilieren und zu signieren) Ihnen ermöglichen, iOS-Builds und TestFlight-Einsendungen von einem Windows-Workstation aus durchzuführen.
Diese Anleitung zeigt einen pragmatischen Workflow, der sich gut in Teams bewährt:
- Entwickeln Sie auf Windows wie ein normales Web-Projekt.
- Behalten Sie
ios/in Ihrem Repository (damit der native Zustand wiederherstellbar ist). - Ausführen
cap synclokal (damit Ihre Web-Build in das iOS-Projekt kopiert wird). - Lassen Sie einen iOS-Cloud-Build mit Capgo Build auslösen.
Was Sie tatsächlich bauen, wo
Es gibt zwei separate „Builds“ in einer Capacitor-Anwendung:
- Web-Build (Ihr JS/HTML/CSS): Führen Sie dies lokal auf Windows durch.
- Native Build (Xcode-Archiv, Signierung, Upload): Capgo Build führt dies auf Mac-Hardware im Cloud durch.
Der Schlüssel liegt in der Trennung: Capgo Build kompiliert das native Projekt, aber es erwartet, dass Ihre Web-Assets bereits synchronisiert in ios/.
Voraussetzungen
- Eine funktionierende Capacitor-Anwendung (jede Framework ist in Ordnung).
- Eine Apple-Entwicklerkonto.
- Zugriff auf App Store Connect für die Anwendung, die Sie hochladen möchten (für TestFlight/App Store-Submission).
- Ihr Capgo-Konto und API-Token (
CAPGO_TOKEN).
1) Erstellen oder Vorbereiten Sie Ihre Capacitor-Anwendung (Windows)
Wenn Sie bereits eine Web-Anwendung haben, überspringen Sie die Capacitor-Schritte.
Beispiel mit Vite:
bun create vite@latest my-app
cd my-app
bun install
Muss das Build-Verfahren statische Assets erzeugen (für Vite ist dies dist/ standardmäßig):
bun run build
2) Fügen Sie Capacitor und die iOS-Plattform hinzu
Installieren Sie Capacitor:
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
Initialisieren und erstellen Sie das iOS-Plattform-Verzeichnis:
bunx cap init
bunx cap add ios
Zu diesem Zeitpunkt haben Sie ein ios/ Verzeichnis. Fügen Sie es in Git ein. Capgo Build kompiliert, was sich innerhalb ios/findet, also möchten Sie es versioniert und reproduzierbar haben.
3) Synchronisieren Sie immer Web-Assets in iOS vor dem Bauen
Jedes Mal, wenn Sie Ihre Web-Anwendung ändern, führen Sie diese Sequenz auf Windows aus:
bun run build
bunx cap sync ios
cap sync ist das, was Ihre gebauten Web-Assets in das native iOS-Projekt kopiert (die Dateien Capgo Build werden tatsächlich kompilieren).
4) Installieren und authentifizieren Sie das Capgo CLI
Capgo Build wird über den Capgo CLI ausgelöst. Mit bun, verwenden Sie bunx:
bunx @capgo/cli@latest login
Oder setzen Sie Ihren Token über die Umgebungsvariable in Ihrer Shell/CI:
export CAPGO_TOKEN="your_api_key_here"
5) Konfigurieren Sie die iOS-Signierung für Cloud-Builds
Um iOS zu bauen, benötigen Sie Signiermaterial:
- Apple-Distributionssiegel (
.p12) und dessen Passwort - Zertifikatsprofil (
.mobileprovision) - App Store Connect API-Schlüssel (
AuthKey_XXXXXX.p8) und Metadaten (Key ID, Issuer ID, Team ID)
Wenn Sie diese Dateien noch generieren müssen, folgen Sie bitte der Capgo-Dokumentation:
- Verwaltung von Anmeldeinformationen (was speichern und wie)
- iOS-Zertifikate und Provisioning-Profile erstellen
Der einfachste Weg ist: Erstelle diese einmal (oft mit einem verfügbaren Mac, einem Teammitglied oder einer einmaligen Mietung) und verwende sie dann von Windows aus für jeden nachfolgenden Build.
Sobald du die Dateien lokal hast, speichere sie für den 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"
Tip: In der CI speichere die Zugriffskennwortdateien bas64-codiert als Geheimnisse, decode sie bei der Ausführung und führe dann denselben Befehl aus. build credentials save 6) Von Windows aus einen iOS-Build auslösen
Aus deinem App-Ordner:
Du wirst in Echtzeit-Logs in deinem Terminal sehen. Wenn deine App Store Connect-Zugriffsschlüssel konfiguriert ist, kann __CAPGO_KEEP_0__ Build den resultierenden Build automatisch an TestFlight übermitteln.
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
You will see real-time logs in your terminal. If your App Store Connect key is configured, Capgo Build can submit the resulting build to TestFlight automatically.
__CAPGO_KEEP_0__ Build ist für native Änderungen gedacht:
Hinzufügen/Entfernen von Capgo-Plugins
- adding/removing Capacitor plugins
- 8) Schnell iterieren: Live-Updates für native Änderungen
- Icons und Splash-Screens ändern
- Aktualisieren Sie Capacitor
- Jede Änderung an Swift oder Objective-C
Für alltägliche Anpassungen der Benutzeroberfläche und JavaScript-Fixes möchten Sie normalerweise Live-Updates (OTA), sodass Sie das native Binärdatei nicht jedes Mal neu erstellen müssen.
Ein gutes Teamworkflow ist:
- Verwenden Sie Live-Updates für häufige Web-Änderungen.
- Verwenden Sie Capgo Build gelegentlich, wenn native Änderungen erforderlich sind.
Häufige Windows-Fehler (und Lösungen)
- Vergessen Sie
cap sync: Wenn Ihre UI-Änderungen im iOS-Build fehlen, haben Sie wahrscheinlich die Web-Anwendung erstellt, aber sie nicht synchronisiert haben.ios/. - Nicht committieren
ios/: Capgo Build kompiliert das native Projekt. Wenn der Ordner nicht in Git (oder nicht in Ihrem Buildkontext) ist, kann die Build nicht wiederherstellen, um Ihre App zu erstellen. - Plugin-Änderungen ohne native Rebuild: Die Hinzufügung eines Plugins ist eine native Änderung; planen Sie einen Capgo Build-Aufruf (und eine Store-Submission) danach.
Zusammenfassung
Sie können Xcode nicht auf Windows ausführen, aber Sie können iOS-Apps von Windows ausliefern: Verwenden Sie __CAPGO_KEEP_0__ (
- Wrap your web app with Capacitor (
ios/Bauen Sie Ihre Web-Assets lokal, dann - Verwenden Sie __CAPGO_KEEP_0__ Build, um Ihr iOS-Binary zu kompilieren, zu signieren und von __CAPGO_KEEP_1__ auszusenden.
cap sync. - Use Capgo Build to compile, sign, and submit your iOS binary from the CLI.