Saltare al contenuto

Risolvere i problemi

Soluzioni per problemi comuni quando si costruiscono applicazioni native con Capgo Cloud Build.

Sintomi:

  • Il caricamento del progetto fallisce
  • Timeout errors dopo 60 secondi

Soluzioni:

  1. Controlla la tua connessione internet

    Finestra del terminale
    # Test connection to Capgo
    curl -I https://api.capgo.app
  2. Riduci la dimensione del progetto

    • Assicurati node_modules/ non stia venendo caricato (dovrebbe essere escluso automaticamente)
    • Controlla i file grandi nel tuo progetto:
    Finestra del terminale
    find . -type f -size +10M
  3. Controlla la scadenza dell'URL di caricamento

    • Le URL di caricamento scadono dopo 1 ora
    • Se si ottiene un errore di URL scaduto, esegui nuovamente il comando di build

Sintomi:

  • La build supera il tempo massimo consentito
  • Lo stato mostra timeout

Soluzioni:

  1. Optimizza le dipendenze

    • Elimina le dipendenze non utilizzate npm
    • Utilizza npm prune --production prima di costruire
  2. Controlla le problematiche di rete durante la costruzione

    • Alcune dipendenze possono scaricare file di grandi dimensioni durante la costruzione
    • Considera il pre-caching con un file di blocco
  3. Verifica le dipendenze native

    Finestra del terminale
    # iOS - check Podfile for heavy dependencies
    cat ios/App/Podfile
    # Android - check build.gradle
    cat android/app/build.gradle
  4. Contatta il supporto

    • If il tuo app ha effettivamente bisogno di più tempo
    • Potremmo regolare i limiti per casi d'uso specifici

Sintomi:

  • La costruzione fallisce immediatamente con un errore di autenticazione
  • Errori 401 o 403

Soluzioni:

  1. Verifica che la API chiave sia corretta

    Fenestra del terminale
    # Test with a simple command
    bunx @capgo/cli@latest app list
  2. Verifica i permessi della chiave API

    • La chiave deve avere write o all permessi
    • Verifica nella dashboard di Capgo sotto le chiavi API
  3. Assicurati che la chiave API stia venendo letta

    Finestra del terminale
    # Check environment variable
    echo $CAPGO_TOKEN
    # Or check your saved credentials file
    cat ~/.capgo-credentials/credentials.json # global
    cat .capgo-credentials.json # local (--local)
  4. Riaccreditarsi

    Finestra del terminale
    bunx @capgo/cli@latest login

”App non trovato” o “Nessuna autorizzazione per questo app”

Sezione intitolata “”App non trovato” o “Nessuna autorizzazione per questo app””

Sintomi:

  • L'autenticazione funziona ma si verifica un errore specifico dell'app

Soluzioni:

  1. Verifica che l'app sia registrata

    Finestra del terminale
    bunx @capgo/cli@latest app list
  2. Verifica che l'ID dell'app corrisponda

    • Verifica capacitor.config.json appId
    • Assicurati che il comando utilizzi l'ID dell'app corretto
  3. Verifica l'accesso dell'organizzazione

    • Assicurati di essere nella organizzazione corretta
    • La chiave API deve avere accesso all'organizzazione dell'app

Sintomi:

  • La costruzione fallisce durante la fase di firma code
  • Errori di Xcode sui certificati o sui profili

Soluzioni:

  1. Verifica che il tipo di certificato corrisponda al tipo di costruzione

    • Costruiscono bisogno di certificati di sviluppo
    • Costruiscono bisogno di certificati di distribuzione
  2. Verifica che il certificato e il profilo corrispondano

    Fenestra del terminale
    # Decode and inspect your certificate
    echo $BUILD_CERTIFICATE_BASE64 | base64 -d > cert.p12
    openssl pkcs12 -in cert.p12 -nokeys -passin pass:$P12_PASSWORD | openssl x509 -noout -subject
  3. Assicurati che il profilo di provisioning sia valido

    • Verifica la data di scadenza
    • Verifica che includa il tuo ID App
    • Conferma che includa il certificato
  4. Regenera le credenziali

    • Cancella il vecchio certificato/profilo
    • Creane nuovi nel portale dello sviluppatore Apple
    • Riaccodifica e aggiorna le variabili di ambiente

”Il profilo di provisioning non include il certificato di firma”

Sezione intitolata “”Il profilo di provisioning non include il certificato di firma””

Sintomi:

  • Xcode non riesce a trovare il certificato nel profilo

Soluzioni:

  1. Scarica il profilo più recente da Apple

    • Vai su Apple Developer → Certificati, ID e Profili
    • Scarica il profilo di provisioning
    • Assicurati che includa il tuo certificato
  2. Verifica che il certificato sia nel profilo

    Fenestra del terminale
    # Extract profile
    echo $BUILD_PROVISION_PROFILE_BASE64 | base64 -d > profile.mobileprovision
    # View profile contents
    security cms -D -i profile.mobileprovision
  3. Ricrea il profilo con il certificato corretto

    • In portallo dello sviluppatore Apple, modifica il profilo
    • Assicurati di aver selezionato il certificato di distribuzione
    • Scarica e ricodifica

Sintomi:

  • L'upload a TestFlight fallisce
  • Errori di chiave API

Soluzioni:

  1. Verifica le credenziali di chiave API

    • Controlla APPLE_KEY_ID (dovrebbe essere 10 caratteri)
    • Controlla APPLE_ISSUER_ID (formato UUID)
    • Verifica che APPLE_KEY_CONTENT sia correttamente codificato in base64
  2. Testa la chiave API localmente

    Fenestra del terminale
    # Decode key
    echo $APPLE_KEY_CONTENT | base64 -d > AuthKey.p8
    # Test with fastlane (if installed)
    fastlane pilot list
  3. Controlla le autorizzazioni della chiave API

    • La chiave richiede il ruolo 'Developer' o superiore
    • Verifica in App Store Connect → Utenti e accessi → Chiavi
  4. Sicura che la chiave non sia revocata

    • Controlla in App Store Connect
    • Genera una nuova chiave se necessario

Segni e sintomi:

  • La build fallisce durante l'installazione di CocoaPods
  • Errori nel file Podfile

Soluzioni:

  1. Verifica che il file Podfile.lock sia stato commesso

    Fenestra del terminale
    git status ios/App/Podfile.lock
  2. Esegui un test di installazione locale del pod

    Fenestra del terminale
    cd ios/App
    pod install
  3. Controlla i pod incompatibili

    • Recensisci Podfile per conflitti di versione
    • Assicurati che tutti i pod supportino il tuo target di distribuzione iOS
  4. Pulisci la cache dei pod

    Fenestra del terminale
    cd ios/App
    rm -rf Pods
    rm Podfile.lock
    pod install
    # Then commit new Podfile.lock

Sintomi:

  • La costruzione fallisce durante la firma
  • Errore Gradle sul keystore

Soluzioni:

  1. Verifica la password del keystore

    Finestra del terminale
    # Test keystore locally
    keytool -list -keystore my-release-key.keystore
    # Enter password when prompted
  2. Verifica le variabili di ambiente

    Finestra del terminale
    # Ensure no extra spaces or special characters
    echo "$KEYSTORE_STORE_PASSWORD" | cat -A
    echo "$KEYSTORE_KEY_PASSWORD" | cat -A
  3. Verifica l'encoding base64

    Finestra del terminale
    # Decode and test
    echo $ANDROID_KEYSTORE_FILE | base64 -d > test.keystore
    keytool -list -keystore test.keystore

Sintomi:

  • La firma fallisce con errore di alias

Soluzioni:

  1. Elenco degli alias del keystore

    Finestra del terminale
    keytool -list -keystore my-release-key.keystore
  2. Verifica che l'alias corrisponda esattamente

    • L'alias è case-sensitive
    • Controlla per refusi nella chiave KEYSTORE_KEY_ALIAS
  3. Utilizza l'alias corretto dal keystore

    Finestra del terminale
    # Update environment variable to match
    export KEYSTORE_KEY_ALIAS="the-exact-alias-name"

Sintomi:

  • Errori di build Gradle generici
  • Problemi di compilazione o di dipendenze

Soluzioni:

  1. Testa prima il build locale

    Finestra del terminale
    cd android
    ./gradlew clean
    ./gradlew assembleRelease
  2. Controlla le dipendenze mancanti

    • Verifica i file build.gradle
    • Assicurati che tutti i plugin siano elencati nelle dipendenze
  3. Verifica la compatibilità della versione di Gradle

    Fenestra del terminale
    # Check gradle version
    cat android/gradle/wrapper/gradle-wrapper.properties
  4. Pulisci il cache di Gradle

    Fenestra del terminale
    cd android
    ./gradlew clean
    rm -rf .gradle build

Sintomi:

  • La compilazione ha successo ma l'upload fallisce
  • Errori di account di servizio

Solutions:

  1. Verifica il file JSON dell'account di servizio

    Fermata di terminale
    # Decode and check format
    echo $PLAY_CONFIG_JSON | base64 -d | jq .
  2. Controlla i permessi dell'account di servizio

    • Vai a Console di gioco → Configurazione → API Accesso
    • Assicurati che l'account di servizio abbia accesso all'app
    • Concedi il permesso di "Rilascio in tracce di testing"
  3. Verifica che l'app sia configurata nella Console di gioco

    • L'app deve essere creata nella Console di gioco prima
    • Devi caricare almeno un APK manualmente all'inizio
  4. Controlla che API sia abilitato

    • Google Play Developer API deve essere abilitato
    • Controlla nel Console di Google Cloud

”Non trovato il lavoro” o “Stato di costruzione non disponibile”

Sottosezione intitolata “”Non trovato il lavoro” o “Stato di costruzione non disponibile””

Sintomi:

  • Impossibile verificare lo stato di costruzione
  • Errori di ID del lavoro

Soluzioni:

  1. Attendi un momento e riprova

    • Il lavoro può richiedere alcuni secondi per iniziare
  2. Verifica che l'ID del lavoro sia corretto

    • Verifica l'ID del lavoro dalla risposta di costruzione iniziale
  3. Verifica che la costruzione non sia scaduta

    • I dati di costruzione sono disponibili per 24 ore

”Project sync failed”

Sezione intitolata “”

Sintomi:

  • La costruzione fallisce prima dell'avvio della compilazione
  • Errori di file mancanti

Soluzioni:

  1. Esegui Capacitor sincronizzazione localmente

    Finestra del terminale
    bunx cap sync
  2. Assicurati che tutti i file nativi siano commessi

    Finestra del terminale
    git status ios/ android/
  3. Controlla i file nativi ignorati da Git

    • Revisiona .gitignore
    • Assicurati che i file di configurazione importanti non siano ignorati

Sintomi:

  • Il build mostra successo ma non c’è il link di download

Soluzioni:

  1. Verifica la configurazione di costruzione

    • Il magazzino degli artefatti potrebbe non essere configurato
    • Contatta il supporto se l'accesso agli artefatti non è disponibile per la tua costruzione
  2. Per la sottoscrizione di TestFlight per iOS

    • Verifica App Store Connect
    • Il processo potrebbe richiedere 5-30 minuti dopo l'upload
  3. Per Android Play Store

    • Verifica Console di gioco → Testing → Test interni
    • Il processo potrebbe richiedere alcuni minuti

Sintomi:

  • bunx @capgo/cli@latest … fallisce nel CI con “comando non trovato”

Soluzioni:

  1. Configura Bun per primo così bunx è disponibile:

    - uses: oven-sh/setup-bun@v2
  2. Poi esegui il CLIbunx lo scarica a richiesta, non è necessaria l'installazione globale:

    - run: bunx @capgo/cli@latest build request com.example.app --platform android

Sintomi:

  • Variabili di ambiente vuote in fase di build

Soluzioni:

  1. Verifica che i segreti siano impostati

    • Vai ai repo Impostazioni → Segreti e variabili → Azioni
    • Aggiungi tutti i segreti richiesti
  2. Utilizza la sintassi corretta

    env:
    CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
  3. Controlla che i nomi dei segreti corrispondano

    • I nomi sono case-sensitive
    • Nessi errori di ortografia nelle referenze ai segreti
Finestra del terminale
# Add debug flag (when available)
bunx @capgo/cli@latest build request com.example.app --verbose

Quando si contatta il supporto, includere:

  1. Comando di costruzione utilizzato

    Finestra del terminale
    bunx @capgo/cli@latest build request com.example.app --platform ios
  2. Errore del messaggio (output completo)

  3. ID del lavoro (dal output di costruzione)

  4. Log di costruzione (copia l'output completo del terminale)

  5. Informazioni sull'ambiente

    Fenestra del terminale
    node --version
    npm --version
    bunx @capgo/cli@latest --version

Limitazioni correnti:

  • Tempo massimo di costruzione: 10 minuti
  • Dimensione massima di caricamento: ~500MB
  • I costruzioni iOS richiedono lezioni Mac di 24 ore, costruisci su Mac per garantire l'uso ottimale
  • L'accessibilità del download dell'artefatto di costruzione dipende dalla destinazione di costruzione e dalla configurazione di archiviazione dell'artefatto

Queste limitazioni possono essere aggiustate in base alle risposte dei utenti.