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 nativo iOS) e Capgo Costruzione (per compilarlo e firmarlo in cloud) ti consente di eseguire le costruzioni iOS e le sottoscrizioni di TestFlight da un workstation Windows.
Questa guida mostra un workflow pragmatico che funziona bene in team:
- Sviluppa su Windows come un normale progetto web.
- Mantieni
ios/nel tuo repository (così lo stato nativo è riproducibile). - Esegui
cap synclocalmente (così il tuo build web viene copiato nel progetto iOS). - Attiva una costruzione iOS in cloud con Capgo Costruzione.
Cosa si Costruisce Effettivamente Dove
Ci sono due costruzioni separate in un'app Capacitor:
- Costruzione web (il tuo JS/HTML/CSS): lo fai localmente su Windows.
- Costruzione nativa (archiviazione di Xcode, firma, caricamento): Capgo Costruzione fa questo su Mac hardware in cloud.
Questa separazione è la chiave: Capgo Costruzione compila il progetto nativo, ma si aspetta che i tuoi asset web siano già sincronizzati in ios/.
Requisiti preliminari
- Un'app Capacitor funzionante (qualsiasi framework va bene).
- Un account di sviluppatore Apple.
- L'accesso a App Store Connect per l'app che vuoi caricare (per la sottoscrizione a TestFlight/App Store).
- I tuoi dati di accesso a Capgo e API token (
CAPGO_TOKEN).
1) Crea o Prepara la tua app Capacitor (Windows)
Se già hai un'app web, salta 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
In questo punto avrai un ios/ directory. Committalo a git. Capgo Build compila ciò che è all'interno ios/, quindi vuoi che sia versionato e riproducibile.
3) Sincronizza sempre gli asset web nella iOS prima di costruire
Ogni volta che cambi 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 Build effettivamente compilerà).
4) Installa e autenticati il Capgo CLI
Capgo Avvia il build tramite il Capgo CLI. Con bun, utilizza bunx:
bunx @capgo/cli@latest login
O impostare il tuo token tramite variabile di ambiente nel tuo shell/CI:
export CAPGO_TOKEN="your_api_key_here"
5) Configura la firma iOS per le costruzioni Cloud
Per costruire iOS hai bisogno di materiale di firma:
- Certificato di distribuzione Apple (
.p12) e la sua password - Profilo di provisioning (
.mobileprovision) - Chiave di accesso App Store Connect API (
AuthKey_XXXXXX.p8) e metadati (ID chiave, ID emittente, ID team)
Se ancora hai bisogno di generare questi file, segui la Capgo documentazione:
- Gestione delle credenziali (cosa salvare e come)
- How to Get iOS Certificates and Provisioning Profiles
La via più facile è: creare/esportare questi file una volta (spesso utilizzando qualsiasi Mac disponibile, un collega o un noleggio a tempo di una volta), quindi riprenderli da Windows per ogni successivo build.
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 dei credenziali in formato base64 come segreti, decodificali in esecuzione, quindi esegui lo stesso comando. build credentials save 6) Avvia un build iOS da Windows
Dal tuo cartella dell'app:
Vedrai i log in tempo reale nel tuo terminale. Se la tua chiave App Store Connect è configurata, __CAPGO_KEEP_0__ Build può inviare automaticamente il build risultante su TestFlight.
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 è per le modifiche native:
aggiungere/rimuovere Capgo plugin
- adding/removing Capacitor plugins
- modificare i permessi native
- cambiare icone/splash
- aggiornare Capacitor
- qualsiasi cambiamenti in Swift/Objective-C
Per le modifiche quotidiane dell'interfaccia utente e le correzioni JavaScript, in generale desideri Aggiornamenti in tempo reale (OTA), quindi non ricostruisci il binario nativo ogni volta.
Un buon flusso di lavoro di squadra è:
- Usa Aggiornamenti in tempo reale per le modifiche web frequenti.
- Usa Capgo Build occasionalmente quando sono necessarie modifiche native.
Comuni insidie di Windows (e soluzioni)
- Dimenticare
cap sync: se le tue modifiche dell'interfaccia utente mancano nella build iOS, è probabile che hai costruito l'app web ma non l'hai sincronizzata.ios/. - Non si commette
ios/: Capgo Costruzione compila il progetto nativo. Se la cartella non è in Git (o non è nel tuo contesto di costruzione), la costruzione non può riprodurre il tuo app. - Modifiche del plugin senza ricostruzione nativa: l'aggiunta di un plugin è un cambiamento nativo; pianifica un Capgo Costruzione (e una presentazione al negozio) successivo.
Riepilogo
Non puoi eseguire Xcode su Windows, ma puoi invio app iOS da Windows: Avvolgi la tua app web con __CAPGO_KEEP_0__ (
- Wrap your web app with Capacitor (
ios/Costruisci gli asset web localmente, poi - Utilizza __CAPGO_KEEP_0__ Costruzione per compilare, firmare e presentare il tuo binario iOS dal __CAPGO_KEEP_1__.
cap sync. - Utilizza Capgo Build per compilare, firmare e presentare il tuo binario iOS dal CLI.