Saltare al contenuto

Risolvere i Problemi

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

Sintomi:

  • Il caricamento del progetto fallisce
  • Errore di timeout 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 caricando (dovrebbe essere escluso automaticamente)
    • Controlla i file grandi nel tuo progetto:
    Finestra del terminale
    find . -type f -size +10M
  3. Verifica la scadenza dell'URL di caricamento

    • Gli URL di caricamento scadono dopo 1 ora
    • Se ottieni un errore di URL scaduto, esegui nuovamente il comando di costruzione

Sintomi:

  • Costruzione supera il tempo massimo consentito
  • Lo stato mostra timeout

Soluzioni:

  1. Optimizza le dipendenze

    • Elimina i pacchetti npm non utilizzati
    • Usa 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. Contattare il supporto

    • Se 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

    Finestra 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 Verifica nella dashboard di __CAPGO_KEEP_0__ sotto le __CAPGO_KEEP_1__ Chiavi
    • Check in Capgo dashboard under API Keys
  3. Ensure API key is being read

    Copia nel portapenna
    # 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. Finestra del terminale

    Copia nel portapenna
    bunx @capgo/cli@latest login

”L'app non è stata trovata” o “Nessuna autorizzazione per questa app”

Sezione intitolata “”L'app non è stata trovata” o “Nessuna autorizzazione per questa app””

Sintomi:

  • La 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 all'organizzazione

    • Controlla di essere nell'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 build

    • Il build di sviluppo richiede certificati di sviluppo
    • Il build per l'App Store richiede certificati di distribuzione
  2. Controlla 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

    • Controlla 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
    • Creare nuove in Apple Developer portal
    • Ricodificare e aggiornare le variabili di ambiente

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

Sintomi:

Xcode non trova il certificato nel profilo

  • Soluzioni:

Scaricare il profilo più recente da Apple

  1. Vai a Apple Developer → Certificati, ID e Profili

    • Scaricare il profilo di provisioning
    • Assicurati che includa il tuo certificato
    • Verifica che il certificato sia nel profilo
  2. Scarica il profilo di provisioning da Apple

    Finestra 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

    • Nel portale 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 chiave di API

    • Controlla APPLE_KEY_ID (dovrebbe essere 10 caratteri)
    • Controlla APPLE_ISSUER_ID (dovrebbe essere nel formato UUID)
    • Verifica che APPLE_KEY_CONTENT sia correttamente codificato in base64
  2. Sincronizza l'orologio del computer

    • L'autenticazione di App Store Connect utilizza JWT a breve scadenza generati dal tempo di sistema locale
    • Apple rifiuta i token che scadono dopo più di 20 minuti, quindi anche piccoli disallineamenti orari possono rendere un altrimenti valido key non valido
    • Su Windows, apri Impostazioni > Tempo e lingua > Data e ora e clicca Sincronizza ora
    • Su macOS, apri Impostazioni del sistema > Generale > Data e Ora e abilita il tempo automatico
    • Sul sistema Linux, controlla timedatectl status e abilita NTP se necessario
    • Dopo aver sincronizzato, esegui nuovamente il comando di compilazione o di credenziali Capgo

    Vedi la documentazione di Apple per la regola di durata del token di App Store Connect. Genera i token per le richieste API Eseguisci la chiave __CAPGO_KEEP_0__ localmente

  3. Test API key locally

    Copia nel portapenne
    # Decode key
    echo $APPLE_KEY_CONTENT | base64 -d > AuthKey.p8
    # Test with fastlane (if installed)
    fastlane pilot list
  4. Controlla le autorizzazioni della chiave API

    • La chiave richiede il ruolo "Developer" o superiore
    • Verifica in App Store Connect -> Utenti e accesso -> Chiavi
  5. Assicurati che la chiave non sia revocata

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

Sintomi:

  • Il build fallisce durante l'installazione di CocoaPods
  • Errori in Podfile

Soluzioni:

  1. Verifica che Podfile.lock sia commesso

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

    Finestra del terminale
    cd ios/App
    pod install
  3. Verifica la presenza di pod incompatibili

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

    Finestra 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
  • Errori di Gradle relativi al keystore

Soluzioni:

  1. Verifica la password del keystore

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

    Fenestra 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 errori di battitura in 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 Gradle generici
  • Problemi di compilazione o di dipendenze

Soluzioni:

  1. Testa la costruzione localmente per primo

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

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

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

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

”Caricamento negato dalla Store Play”

Sintomo: Caricamento negato dalla Store Play

Sintomi:

  • La costruzione ha successo ma il caricamento fallisce
  • Errori del servizio account

Soluzioni:

  1. Verifica il file JSON del servizio account

    Fenestra del terminale
    # Decode and check format
    echo $PLAY_CONFIG_JSON | base64 -d | jq .
  2. Controlla i permessi del servizio account

    • Vai a Console di gioco → Configurazione → API Accesso
    • Assicurati che il servizio account abbia accesso all'app
    • Concedi la "permessi per le tracce di testing"
  3. Verifica che l'app sia configurata nel Console di gioco

    • L'app deve essere creata in Console di gioco prima
    • Deve essere caricato almeno un APK manualmente inizialmente
  4. Verifica che API sia abilitato

    • Deve essere abilitato il Google Play Developer API
    • Verifica in Console di Google

"Job non trovato" o "Stato di costruzione non disponibile"

Sottosezione intitolata ""Job non trovato" o "Stato di costruzione non disponibile""

Sintomi:

  • Non è possibile verificare lo stato di costruzione
  • Errori di ID di lavoro

Soluzioni:

  1. Aspetta un momento e riprova

    • I job di costruzione possono richiedere alcuni secondi per inizializzare
  2. Verifica che l'ID del lavoro sia corretto

    • Verifica l'ID del lavoro dalla risposta di costruzione iniziale
  3. Verifica che i dati di costruzione non sono scaduti

    • I dati di costruzione sono disponibili per 24 ore

”Project sync failed”

Sezione intitolata “”

Sintomi:

  • Costruisce fallimenti prima che inizi la compilazione
  • Errori di file mancanti

Soluzioni:

  1. Esegui Capacitor in locale sincrono

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

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

    • Recensisci .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. Controlla la configurazione del build

    • La memorizzazione degli artefatti potrebbe non essere configurata
    • Contatta il supporto se l'accesso agli artefatti non è disponibile per il tuo build
  2. Per la sottoscrizione di TestFlight per iOS

    • Controlla App Store Connect
    • Il processo potrebbe richiedere 5-30 minuti dopo l'upload
  3. Per la sottoscrizione di Play Store per Android

    • Controlla Play Console → Testing → Test interni
    • Potrebbe richiedere alcuni minuti per il processo

Sintomi:

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

Soluzioni:

  1. Configura Bun prima di tutto quindi bunx è disponibile:

    - uses: oven-sh/setup-bun@v2
  2. Eseguisci quindi il CLIbunx lo recupera a richiesta, senza installazione globale necessaria:

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

Sintomi:

  • Variabili di ambiente vuote in fase di costruzione

Soluzioni:

  1. Verifica che i segreti siano impostati

    • Vai ai impostazioni del repository → Segreti e variabili → Azioni
    • Aggiungi tutti i segreti richiesti
  2. Usa la sintassi corretta

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

    • I nomi sono case-sensitive
    • Nessun refuso nei riferimenti 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. Messaggio di errore (output completo)

  3. ID del lavoro (dal output di costruzione)

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

  5. Informazioni di ambiente

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

Limitazioni attuali:

  • Tempo massimo di costruzione: 10 minuti
  • Dimensione massima di caricamento: ~500MB
  • Il caricamento dei build per iOS richiede un leasing di Mac di 24 ore, il caricamento dei build su Mac verrà messo in coda per garantire l'uso ottimale
  • L'accessibilità del download degli artefatti di costruzione dipende dalla configurazione di destinazione e di archiviazione degli artefatti di costruzione

Queste limitazioni possono essere adattate in base alle informazioni di feedback.