Costruire un'app iOS tradizionalmente significa una cosa sola: hai bisogno di Xcode, e Xcode significa macOS. Quel vincolo è fastidioso se il tuo team intero è su Windows o Linux, o se semplicemente non vuoi mantenere una macchina di build Mac.
La combinazione di Capacitor (per generare il progetto iOS nativo) e Capgo Build (per compilare e firmare in cloud) ti consente di fare build iOS e inviare su TestFlight da una workstation Windows.
Questa guida mostra un workflow pragmatico che funziona bene in team:
- Develop on Windows come un progetto web normale.
- Mantieni
ios/nel tuo repository (così lo stato nativo è riproducibile). - Esegui
cap synclocalmente (così il tuo build web viene copiato nel progetto iOS). - Attiva un build cloud per iOS con Capgo Build.
Cosa si Costruisce Effettivamente Dove
There are two separate “builds” in a Capacitor app:
- costruzioni in un'app __CAPGO_KEEP_0__ :
- Costruzione web (Xcode archive, signing, upload): Capgo Build does this on Mac hardware in the cloud.
Costruzione nativa (archiviazione Xcode, firma, caricamento): Capgo Build fa questo su Mac hardware in cloud. ios/.
Requisiti
- Un'app Capacitor funzionante (qualsiasi framework va bene).
- Un account di sviluppatore Apple.
- Accesso a App Store Connect per l'app che desiderate caricare (per la sottoscrizione a TestFlight/App Store).
- Il vostro account Capgo e API token (
CAPGO_TOKEN).
1) Crea o Prepara la tua app Capacitor (Windows)
Se già hai un'app web, saltare ai passaggi Capacitor.
Esempio con Vite:
bun create vite@latest my-app
cd my-app
bun install
Il build deve produrre asset statici (per Vite questo è dist/ di default):
bun run build
2) Aggiungi Capacitor e la piattaforma iOS
Installa Capacitor:
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
Inizializza e crea la cartella della piattaforma iOS:
bunx cap init
bunx cap add ios
A questo punto avrai un ios/ directory. Aggiungilo al repository Git. Capgo Costruisci ciò che è all'interno ios/così desideri che sia versionato e riproducibile.
3) Sincronizza sempre gli Asset Web nell'iOS prima di costruire
Ogni volta che modifichi il tuo'app web, esegui questa sequenza su Windows:
bun run build
bunx cap sync ios
cap sync è ciò che copia i tuoi asset web costruiti nella progetto iOS nativo (i file Capgo Costruisci saranno effettivamente compilati).
4) Installa e autentica il Capgo CLI
Capgo Costruisci è attivato tramite il Capgo CLI. Con bun, utilizza bunx:
bunx @capgo/cli@latest login
Ottieni il tuo token tramite l'interfaccia utente o
export CAPGO_TOKEN="your_api_key_here"
Ottieni il tuo token tramite variabile di ambiente nel tuo shell/CI:
5) Configura la firma iOS per le costruzioni in Cloud:
- Certificato di distribuzione Apple (
.p12) e la sua password - Profilo di provisioning (
.mobileprovision) - Sottoscrizione App Store API (
AuthKey_XXXXXX.p8) e metadati (ID chiave, ID emittente, ID team)
Se ancora hai bisogno di generare questi file, consulta la Capgo documentazione:
- Gestione delle credenziali (cosa salvare e come)
- Come ottenere i certificati e i profili di provisioning iOS
La via più facile è: crea/esporta questi una volta (spesso utilizzando qualsiasi Mac disponibile, un collega o un noleggio a tempo) e poi ripristinali da Windows per ogni successiva compilazione.
Una volta che hai i file localmente, salvali per 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"
Suggerimento: in CI, memorizza i file delle credenziali in formato base64 come segreti, decodificali in esecuzione, quindi esegui lo stesso build credentials save comando.
6) Attiva una costruzione per iOS da Windows
Dal tuo cartella dell'app:
bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release
Vedrai i log in tempo reale nel tuo terminale. Se la tua chiave di App Store Connect è configurata, la costruzione Capgo può inviare automaticamente il risultato della costruzione a TestFlight.
7) Itera velocemente: Aggiornamenti in tempo reale per le modifiche esclusivamente web
La costruzione Capgo è per le modifiche native:
- aggiungere/rimuovere plugin Capacitor
- modificare le autorizzazioni native
- modificare gli iconi/splash
- aggiornare Capacitor
- qualsiasi cambiamento in Swift/Objective-C
Per le correzioni di UI quotidiane e le modifiche JavaScript, desideri di solito Aggiornamenti in Tempo Reale (OTA), quindi non ricostruisci il binario nativo ogni volta.
Un buon workflow di squadra è:
- Usa Aggiornamenti in Tempo Reale per modifiche web frequenti.
- Use Capgo Build occasionally when native changes are needed.
Pitfall comuni di Windows (e soluzioni)
- Dimenticare
cap sync: se le tue modifiche UI mancano nella build iOS, è probabile che hai costruito l'app web ma non l'hai sincronizzata inios/. - Non commettere
ios/: Capgo Build compiles the native project. If the folder is not in git (or not in your build context), the build cannot reproduce your app. - Modifiche di plugin senza ricostruzione nativa: adding a plugin is a native change; plan a Capgo Build run (and a store submission) afterward.
Riepilogo
Non puoi eseguire Xcode su Windows, ma puoi inviare app iOS da Windows: Avvolgi la tua app web con __CAPGO_KEEP_0__ (
- Wrap your web app with Capacitor (
ios/Crea i file di risorse web localmente, poi - Usa __CAPGO_KEEP_0__ Build per compilare, firmare e inviare il tuo file binario iOS dal __CAPGO_KEEP_1__.
cap sync. - Continua con Costruisci un'app iOS da Windows con Capgo e CLI Build
Keep going from Build an iOS App from Windows with Capacitor and Capgo Build
Costruisci un'app iOS da Windows con __CAPGO_KEEP_0__ e __CAPGO_KEEP_1__ Build Build an iOS App from Windows with Capacitor and Capgo Build Se stai utilizzando Cloudflare per pianificare l'automazione CI/CD, connettilo con GitHub Capgo CI/CD per il flusso di lavoro del prodotto in Capgo CI/CD Capgo Costruzioni Native per il flusso di lavoro del prodotto in Capgo Costruzioni Native Capgo Integrazioni per il flusso di lavoro del prodotto in Capgo Integrazioni Integrazione CI/CD per il dettaglio di implementazione in Integrazione CI/CD, e GitHub Integrazione di Azioni per il dettaglio di implementazione in GitHub Integrazione di Azioni