Saltar al contenido

Gestión de Credenciales

Gestiona tus credenciales de compilación de iOS y Android localmente para compilaciones en la nube convenientes.

Capgo CLI te permite guardar credenciales de compilación localmente en tu máquina en la carpeta .capgo-credentials. Cuando ejecutas una compilación, estas credenciales se usan automáticamente y se envían de forma segura a los servidores de compilación de Capgo.

Almacena tus credenciales de compilación localmente para uso automático:

Terminal window
npx @capgo/cli build credentials save --platform <ios|android> [opciones]

Ver credenciales guardadas actualmente (las contraseñas están enmascaradas):

Terminal window
npx @capgo/cli build credentials list

Eliminar credenciales guardadas de tu máquina local:

Terminal window
# Limpiar todas las credenciales
npx @capgo/cli build credentials clear
# Limpiar solo credenciales iOS
npx @capgo/cli build credentials clear --platform ios
# Limpiar solo credenciales Android
npx @capgo/cli build credentials clear --platform android
Terminal window
npx @capgo/cli build credentials save \
--platform ios \
--certificate ./cert.p12 \
--p12-password "TuContraseñaP12" \
--provisioning-profile ./profile.mobileprovision \
--apple-key ./AuthKey_ABC1234567.p8 \
--apple-key-id "ABC1234567" \
--apple-issuer-id "00000000-0000-0000-0000-000000000000" \
--apple-team-id "TEAM123456"
OpciónDescripciónRequerido
--certificate <ruta>Ruta al archivo de certificado .p12Sí (lanzamiento)
--p12-password <contraseña>Contraseña para el certificado .p12Sí (lanzamiento)
--provisioning-profile <ruta>Ruta al archivo .mobileprovisionSí (lanzamiento)
--provisioning-profile-prod <ruta>Perfil de aprovisionamiento de producción (opcional)No
--apple-key <ruta>Ruta a la clave API .p8 de App Store ConnectSí (envío)
--apple-key-id <id>ID de clave API de App Store ConnectSí (envío)
--apple-issuer-id <id>ID de emisor API de App Store Connect (UUID)Sí (envío)
--apple-team-id <id>ID de equipo de App Store ConnectSí (envío)
--apple-id <email>Email de Apple ID (autenticación alternativa)No
--apple-app-password <contraseña>Contraseña específica de la aplicación (autenticación alternativa)No

Cuando guardas credenciales iOS, el CLI:

  1. Lee los archivos de certificado y perfil de aprovisionamiento
  2. Los convierte a codificación base64
  3. Guarda las credenciales en la carpeta .capgo-credentials
  4. Almacena contraseñas e IDs como texto plano (solo archivos locales)

La estructura de archivos almacenada:

{
"ios": {
"BUILD_CERTIFICATE_BASE64": "...",
"BUILD_PROVISION_PROFILE_BASE64": "...",
"APPLE_KEY_CONTENT": "...",
"P12_PASSWORD": "...",
"APPLE_KEY_ID": "ABC1234567",
"APPLE_ISSUER_ID": "...",
"APP_STORE_CONNECT_TEAM_ID": "TEAM123456"
}
}
Terminal window
npx @capgo/cli build credentials save \
--platform android \
--keystore ./release.keystore \
--keystore-alias "mi-alias-de-clave" \
--keystore-key-password "ContraseñaClave123" \
--keystore-store-password "ContraseñaAlmacén123" \
--play-config ./play-store-service-account.json
OpciónDescripciónRequerido
--keystore <ruta>Ruta al archivo .keystore o .jksSí (lanzamiento)
--keystore-alias <alias>Alias de la clave en el keystoreSí (lanzamiento)
--keystore-key-password <contraseña>Contraseña para el alias de la claveSí (lanzamiento)
--keystore-store-password <contraseña>Contraseña para el keystoreSí (lanzamiento)
--play-config <ruta>Ruta al JSON de la cuenta de servicio de Play StoreSí (envío)

Cuando guardas credenciales Android, el CLI:

  1. Lee los archivos keystore y JSON de la cuenta de servicio
  2. Los convierte a codificación base64
  3. Guarda las credenciales en la carpeta .capgo-credentials
  4. Almacena contraseñas y alias como texto plano (solo archivos locales)

La estructura de archivos almacenada:

{
"android": {
"ANDROID_KEYSTORE_FILE": "...",
"PLAY_CONFIG_JSON": "...",
"KEYSTORE_KEY_ALIAS": "mi-alias-de-clave",
"KEYSTORE_KEY_PASSWORD": "...",
"KEYSTORE_STORE_PASSWORD": "..."
}
}
}

Una vez que hayas guardado las credenciales, se usan automáticamente cuando compiles:

Terminal window
# Las credenciales se cargan automáticamente desde la carpeta .capgo-credentials
npx @capgo/cli build com.example.app --platform ios

También puedes sobrescribir las credenciales guardadas usando variables de entorno:

Terminal window
# Las variables de entorno tienen prioridad sobre las credenciales guardadas
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="contraseña-diferente" \
npx @capgo/cli build com.example.app --platform ios

Orden de precedencia:

  1. Variables de entorno (prioridad más alta)
  2. Credenciales guardadas en la carpeta .capgo-credentials
  3. Sin credenciales (prioridad más baja)

Lista qué credenciales tienes guardadas:

Terminal window
npx @capgo/cli build credentials list

Ejemplo de salida:

📋 Credenciales de Compilación Guardadas:
Credenciales iOS:
✓ Certificado (base64)
✓ Perfil de Aprovisionamiento (base64)
✓ Contenido de Clave Apple (base64)
✓ Contraseña P12: ********
✓ ID de Clave Apple: ABC1234567
✓ ID de Emisor Apple: 00000000-0000-0000-0000-000000000000
✓ ID de Equipo: TEAM123456
Credenciales Android:
✓ Keystore (base64)
✓ Configuración de Play Store (base64)
✓ Alias de Keystore: mi-alias-de-clave
✓ Contraseña de Clave: ********
✓ Contraseña de Almacén: ********
Ubicación: .capgo-credentials/
🔒 Estas credenciales se almacenan localmente solo en tu máquina.
Al compilar, se envían a Capgo pero NUNCA se almacenan allí.
Se eliminan automáticamente después de completar la compilación (máx. 24 horas).
  1. Permisos de Archivo

    Terminal window
    # Asegurar que la carpeta de credenciales no sea legible por otros
    chmod 700 .capgo-credentials
    chmod 600 .capgo-credentials/*
  2. Nunca Confirmar Credenciales

    Terminal window
    # Agregar a .gitignore
    echo ".capgo-credentials/" >> .gitignore
  3. Separar Credenciales

    • Usa diferentes credenciales para desarrollo local vs CI/CD
    • Rota las credenciales regularmente
    • No compartas credenciales entre miembros del equipo

Para entornos CI/CD, prefiere variables de entorno sobre credenciales guardadas:

# GitHub Actions
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
# ... otros secretos

Esto es más seguro porque:

  • Los secretos son gestionados por tu plataforma CI/CD
  • No hay archivos de credenciales en los runners
  • Fácil rotación y control de acceso
  • Pistas de auditoría para uso de secretos

Rota tus credenciales regularmente:

  1. iOS: Genera nuevos certificados y claves API anualmente
  2. Android: Cambia las contraseñas del keystore anualmente
  3. Después de cambios de equipo: Rota cuando los miembros del equipo se vayan

Actualizar credenciales guardadas:

Terminal window
# Vuelve a ejecutar el comando save con nuevas credenciales
npx @capgo/cli build credentials save --platform ios --certificate ./nuevo-cert.p12 ...

Si la compilación dice que no se encontraron credenciales:

  1. Verifica si las credenciales están guardadas:

    Terminal window
    npx @capgo/cli build credentials list
  2. Guarda las credenciales si faltan:

    Terminal window
    npx @capgo/cli build credentials save --platform ios ...
  3. Verifica que la carpeta de credenciales exista:

    Terminal window
    ls -la .capgo-credentials/

“Permiso denegado” al leer credenciales

Section titled ““Permiso denegado” al leer credenciales”

Corrige los permisos de archivo:

Terminal window
chmod 700 .capgo-credentials
chmod 600 .capgo-credentials/*

Verifica que se especifique la plataforma correcta:

Terminal window
# Asegúrate de que --platform coincida con las credenciales guardadas
npx @capgo/cli build com.example.app --platform ios # Usa credenciales ios
npx @capgo/cli build com.example.app --platform android # Usa credenciales android

Si las credenciales parecen corruptas:

Terminal window
# Limpiar todas las credenciales
npx @capgo/cli build credentials clear
# Guardar nuevamente
npx @capgo/cli build credentials save --platform ios ...

Si actualmente estás usando variables de entorno, puedes migrar a credenciales guardadas:

  1. Extrae tus variables de entorno actuales

    Terminal window
    echo $BUILD_CERTIFICATE_BASE64 # Verifica que existan
  2. Decodifica los archivos base64 a archivos originales (si es necesario)

    Terminal window
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Guarda usando el CLI

    Terminal window
    npx @capgo/cli build credentials save \
    --platform ios \
    --certificate ./cert.p12 \
    --provisioning-profile ./profile.mobileprovision \
    --p12-password "$P12_PASSWORD" \
    --apple-key-id "$APPLE_KEY_ID" \
    --apple-issuer-id "$APPLE_ISSUER_ID" \
    --apple-team-id "$APP_STORE_CONNECT_TEAM_ID"
  4. Prueba la compilación

    Terminal window
    npx @capgo/cli build com.example.app --platform ios
  5. Elimina las variables de entorno (opcional)

    Terminal window
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

Las credenciales se almacenan en la carpeta .capgo-credentials:

  • macOS/Linux: .capgo-credentials/ (en la raíz de tu proyecto o directorio home)
  • Windows: .capgo-credentials\ (en la raíz de tu proyecto o directorio home)

La carpeta se crea automáticamente cuando guardas credenciales por primera vez.