Saltar al contenido

Administrar Credenciales

Administre sus credenciales de compilación de iOS y Android localmente para realizar compilaciones en la nube de manera conveniente.

Capgo CLI le permite guardar credenciales de compilación localmente en su máquina en el .capgo-credentials carpeta. Cuando realice una compilación, estas credenciales se utilizan automáticamente y se envían de manera segura a los servidores de compilación de Capgo.

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

Ventana de terminal
npx @capgo/cli build credentials save --platform <ios|android> [options]

Actualiza las credenciales existentes de manera parcial sin tener que proporcionar todo de nuevo:

Ventana de terminal
npx @capgo/cli build credentials update --platform <ios|android> [options]

La update El comando utiliza la fusión aditiva para los perfiles de provisión — los nuevos perfiles se fusionan con los existentes. Para reemplazar la totalidad de la mapa de perfiles en lugar de eso, agrega Ejemplo — agregar un perfil de extensión a credenciales existentes: Ventana de terminal --overwrite-ios-provisioning-map.

Copiar a portapapeles

El comando de actualización acepta las mismas opciones que
npx @capgo/cli build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

Lista de credenciales save Sección titulada “Lista de credenciales”

Ejemplo — agregar un perfil de extensión a credenciales existentes: __CAPGO_KEEP_0__

Ejemplo — agregar un perfil de extensión a credenciales existentes: __CAPGO_KEEP_0__

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

ventana de terminal
npx @capgo/cli build credentials list
# List credentials for a specific app
npx @capgo/cli build credentials list --appId com.example.app

Eliminar credenciales guardadas de tu máquina local:

ventana de terminal
# Clear all credentials
npx @capgo/cli build credentials clear
# Clear credentials for a specific app + platform
npx @capgo/cli build credentials clear --appId com.example.app --platform ios

Convertir formato de legado de un solo perfil al nuevo formato de múltiples objetivos:

ventana de terminal
npx @capgo/cli build credentials migrate --platform ios

El comando de migración detecta credenciales antiguas, las convierte a BUILD_PROVISION_PROFILE_BASE64 y elimina las claves de legado. Consulte CAPGO_IOS_PROVISIONING_MAPMigración desde un perfil único para obtener más detalles. Guardar credenciales de iOS

Sección titulada “Guardar credenciales de iOS”

Nota
ventana de terminal
npx @capgo/cli build credentials save \
--platform ios \
--certificate ./cert.p12 \
--p12-password "YourP12Password" \
--ios-provisioning-profile "com.example.app=./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 <path>Ruta al archivo de certificado .p12Sí (lanzamiento)
--p12-password <password>Contraseña para el certificado .p12Sí (lanzamiento)
--ios-provisioning-profile <mapping>Mapeo de perfil de provisión (bundleId=path). Repetible para aplicaciones multi-objetivo. Si solo hay un perfil y no hay prefijo de bundleId, CLI se infiere automáticamente desde el perfil.Sí (lanzamiento)
--apple-key <path>Ruta de la clave .p8 de App Store Connect APIVer nota¹
--apple-key-id <id>ID de clave de App Store Connect APIVer nota¹
--apple-issuer-id <id>ID emisor de App Store Connect API (UUID)Ver nota¹
--apple-team-id <id>ID del equipo de App Store Connect
--ios-distribution <mode>Modo de distribución: app_store (predeterminado) o ad_hocNo
--output-uploadHabilitar un enlace de descarga temporal de Capgo para el artefacto de compilaciónNo (predeterminado: false)
--output-retention <seconds>¿Cuánto tiempo mantener los resultados de compilación (por ejemplo, 3600s)No (predeterminado: 3600s)
--skip-build-number-bumpSaltar el incremento automático del número de compilaciónNo

Cuando guardas credenciales de iOS, el CLI:

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

La estructura del archivo almacenado:

{
"ios": {
"BUILD_CERTIFICATE_BASE64": "...",
"CAPGO_IOS_PROVISIONING_MAP": "{\"com.example.app\":{\"profile\":\"...\",\"name\":\"match AppStore com.example.app\"}}",
"APPLE_KEY_CONTENT": "...",
"P12_PASSWORD": "...",
"APPLE_KEY_ID": "ABC1234567",
"APPLE_ISSUER_ID": "...",
"APP_STORE_CONNECT_TEAM_ID": "TEAM123456",
"CAPGO_IOS_DISTRIBUTION": "app_store"
}
}

Ejemplo completo

Ventana de terminal
Copiar a la papelera
npx @capgo/cli build credentials save \
--platform android \
--keystore ./release.keystore \
--keystore-alias "my-key-alias" \
--keystore-key-password "KeyPassword123" \
--keystore-store-password "StorePassword123" \
--play-config ./play-store-service-account.json

Android Options

Opciones de Android
OpciónDescripciónRequerido
--keystore <path>Ruta al archivo .keystore o .jksSí (lanzamiento)
--keystore-alias <alias>Alias de la clave en el keystoreSí (lanzamiento)
--keystore-key-password <password>Contraseña para el alias de la claveSí (lanzamiento)
--keystore-store-password <password>Contraseña para el keystoreSí (lanzamiento)
--play-config <path>Ruta al archivo JSON de servicio de Play StoreSí (envío)

Cuando guardas credenciales de Android, el CLI:

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

La estructura del archivo almacenado:

{
"android": {
"ANDROID_KEYSTORE_FILE": "...",
"PLAY_CONFIG_JSON": "...",
"KEYSTORE_KEY_ALIAS": "my-key-alias",
"KEYSTORE_KEY_PASSWORD": "...",
"KEYSTORE_STORE_PASSWORD": "..."
}
}
}

Una vez que hayas guardado credenciales, se utilizan automáticamente cuando construyes:

Ventana de terminal
# Credentials automatically loaded from .capgo-credentials folder
npx @capgo/cli build com.example.app --platform ios

También puedes sobreescribir credenciales guardadas utilizando variables de entorno:

Ventana de terminal
# Environment variables take precedence over saved credentials
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
npx @capgo/cli build com.example.app --platform ios

Orden de precedencia:

  1. Variables de entorno (prioridad más alta)
  2. Credenciales guardadas en .capgo-credentials carpeta
  3. No se han proporcionado credenciales (prioridad más baja)

Muestra las credenciales que has guardado:

Ventana de terminal
npx @capgo/cli build credentials list

Ejemplo de salida:

📋 Saved Build Credentials:
iOS Credentials:
✓ Certificate (base64)
✓ Provisioning Map (JSON)
✓ Apple Key Content (base64)
✓ P12 Password: ********
✓ Apple Key ID: ABC1234567
✓ Apple Issuer ID: 00000000-0000-0000-0000-000000000000
✓ Team ID: TEAM123456
Android Credentials:
✓ Keystore (base64)
✓ Play Store Config (base64)
✓ Keystore Alias: my-key-alias
✓ Key Password: ********
✓ Store Password: ********
Location: .capgo-credentials/
🔒 These credentials are stored locally on your machine only.
When building, they are sent to Capgo but NEVER stored there.
They are auto-deleted after build completion.
  1. Permisos de archivo

    Ventana de terminal
    # Ensure credentials folder is not readable by others
    chmod 700 .capgo-credentials
    chmod 600 .capgo-credentials/*
  2. Nunca cometas credenciales

    Ventana de terminal
    # Add to .gitignore
    echo ".capgo-credentials/" >> .gitignore
  3. Credenciales separadas

    • Usa credenciales diferentes para desarrollo local vs CI/CD
    • Rotar credenciales con regularidad
    • No compartas credenciales entre miembros del equipo

Uso de CI/CD

Uso de CI/CD

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

La CLI lee las siguientes variables de entorno para credenciales:

Credenciales de iOS:

VariableDescripciónFormatoRequerido
BUILD_CERTIFICATE_BASE64Certificado P12/PKCS12 para firmar codeBase64Sí (lanzamiento)
CAPGO_IOS_PROVISIONING_MAPMapa JSON de IDs de paquetes a datos de perfil de provisiónCadena JSONSí (lanzamiento)
P12_PASSWORDContraseña para el certificado P12Texto planoOpcional
APPLE_KEY_IDClave de App Store Connect APICadena de texto (por ejemplo, “ABC1234567”)Véase nota¹
APPLE_ISSUER_IDEmisor de App Store Connect APIcadena de identificador únicoVea la nota¹
APPLE_KEY_CONTENTclave de App Store Connect API (contenido del archivo .p8)Base64Vea la nota¹
APP_STORE_CONNECT_TEAM_IDID de equipo de desarrollador de AppleCadena (por ejemplo, “XXXXXXXXXX”)
CAPGO_IOS_DISTRIBUTIONModo de distribución: app_store (por defecto) o ad_hocCadenaNo

Credenciales de Android:

VariableDescripciónFormatoRequerido
ANDROID_KEYSTORE_FILEArchivo de keystore para firmar APK/AABBase64Sí (lanzamiento)
KEYSTORE_KEY_ALIASAlias de clave dentro del keystoreCadena de textoSí (lanzamiento)
KEYSTORE_KEY_PASSWORDContraseña para el alias de claveTexto planoSí*
KEYSTORE_STORE_PASSWORDContraseña para el archivo del keystoreTexto planoSí*
PLAY_CONFIG_JSONJSON de la cuenta de servicios de Google PlayBase64Sí (envío)

Si se proporciona solo una contraseña, se utilizará para ambos KEYSTORE_KEY_PASSWORD y KEYSTORE_STORE_PASSWORD.

github/trabajos/flujos/trabajo.yml
name: Cloud Build
on:
push:
branches: [main]
jobs:
build-ios:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npx @capgo/cli build com.example.app --platform ios
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
CAPGO_IOS_PROVISIONING_MAP: ${{ secrets.CAPGO_IOS_PROVISIONING_MAP }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
build-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npx @capgo/cli build com.example.app --platform android
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}

Para convertir tus archivos de credenciales a base64 para secretos de CI/CD:

Ventana de terminal
# iOS Certificate (.p12)
base64 -i certificate.p12 | tr -d '\n' > certificate_base64.txt
# iOS Provisioning Profiles — use the CLI to generate CAPGO_IOS_PROVISIONING_MAP:
npx @capgo/cli build credentials save --platform ios \
--ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
# ... other options
# Then copy CAPGO_IOS_PROVISIONING_MAP from .capgo-credentials to your CI secrets
# iOS App Store Connect Key (.p8)
base64 -i AuthKey_XXXXXX.p8 | tr -d '\n' > apple_key_base64.txt
# Android Keystore (.keystore or .jks)
base64 -i release.keystore | tr -d '\n' > keystore_base64.txt
# Google Play Service Account JSON
base64 -i play-store-service-account.json | tr -d '\n' > play_config_base64.txt

¿Por qué las variables de entorno son más seguras?

Sección titulada “Por qué las variables de entorno son más seguras”

Esta aproximación es más segura porque:

  • Las secretas están gestionadas por tu plataforma CI/CD
  • No hay archivos de credenciales en ejecutores
  • Rotación y control de acceso fáciles
  • Huellas de auditoría para el uso de secretas

Rota tus credenciales regularmente:

  1. iOS: Genera nuevos certificados y API claves anualmente
  2. Android: Cambie las contraseñas del keystore anualmente
  3. Después de cambios en el equipo: Rotar cuando los miembros del equipo dejen

Actualizar credenciales guardadas:

Ventana de terminal
# Re-run save command with new credentials
npx @capgo/cli build credentials save --platform ios --certificate ./new-cert.p12 ...

Si el build dice que no se encontraron credenciales:

  1. Verifique si las credenciales están guardadas:

    Ventana de terminal
    npx @capgo/cli build credentials list
  2. Guardar credenciales si faltan:

    Ventana de terminal
    npx @capgo/cli build credentials save --platform ios ...
  3. Verificar que existe la carpeta de credenciales:

    Ventana de terminal
    ls -la .capgo-credentials/

Corregir permisos de archivo:

Ventana de terminal
chmod 700 .capgo-credentials
chmod 600 .capgo-credentials/*

Verifique que se especifique la plataforma correcta:

Ventana de terminal
# Make sure --platform matches saved credentials
npx @capgo/cli build com.example.app --platform ios # Uses ios credentials
npx @capgo/cli build com.example.app --platform android # Uses android credentials

Si las credenciales parecen estar dañadas:

Ventana de terminal
# Clear all credentials
npx @capgo/cli build credentials clear
# Save again
npx @capgo/cli build credentials save --platform ios ...

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

  1. Extrae tus variables de entorno actuales

    Ventana de terminal
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. Decodificar archivos base64 de vuelta a archivos originales (si es necesario)

    Ventana de terminal
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Guardar utilizando el CLI

    Ventana de terminal
    npx @capgo/cli build credentials save \
    --platform ios \
    --certificate ./cert.p12 \
    --ios-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"

    Si tiene credenciales existentes guardadas en el formato antiguo (simple BUILD_PROVISION_PROFILE_BASE64Ejecuta:

    Ventana de terminal
    npx @capgo/cli build credentials migrate --platform ios

    Esto convierte la legado simple-perfil a un CAPGO_IOS_PROVISIONING_MAP y elimina los BUILD_PROVISION_PROFILE_BASE64 y APPLE_PROFILE_NAME llaves.

  4. Prueba la compilación

    Ventana de terminal
    npx @capgo/cli build com.example.app --platform ios
  5. Eliminar variables de entorno (opcional)

    ventana de terminal
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

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

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

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