Saltar al contenido

Gestionar credenciales

Manage your iOS and Android build credentials locally for convenient cloud builds.

Capgo CLI almacena sus credenciales de compilación en su máquina — nunca en los servidores de Capgo . Por defecto, viven en un archivo global file, ~/.capgo-credentials/credentials.jsonCompartido en todos tus proyectos. --local por proyecto Overview en español .capgo-credentials.json en su lugar. Cuando ejecutes una compilación, los credenciales guardadas se utilizan automáticamente y se envían de manera segura a Capgo, luego se eliminan después de que se complete la compilación.

La forma más rápida de trabajar con sus credenciales guardadas es el administrador interactivo. Abre una ventana de terminal (la misma que build init credenciales) donde puedes navegar por lo que está almacenado, ver qué está configurado por aplicación y plataforma, exportar un CI/CD listo para producción .env file, or delete a platform’s credentials:

Copiar al portapapeles
bunx @capgo/cli@latest build credentials manage
OptionDescripción
--appId <appId>Aplicación para gestionar (te pide que elijas si se omite)
--platform <ios|android>Plataforma para gestionar (te pide si se omite)
--localUtiliza el archivo por proyecto .capgo-credentials.json en lugar del archivo global

Preferir comandos scriptables y de una sola ejecución? Utiliza los comandos individuales debajo.

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

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

Actualice parcialmente las credenciales existentes sin tener que proporcionar todo de nuevo:

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

La update El comando utiliza la fusión aditiva para perfiles de configuración — los nuevos perfiles se fusionan con los existentes. Para reemplazar la totalidad del mapa de configuración en su lugar, agregue --overwrite-ios-provisioning-map.

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

Ventana de terminal
bunx @capgo/cli@latest build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

El comando de actualización acepta las mismas opciones que save Pero todos son opcionales — solo los campos que proporcionas se actualizan.

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

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

Elimina las credenciales guardadas de tu máquina local:

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

Convirta el formato de perfil único legado al nuevo formato de múltiples objetivos:

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

La orden migrate detecta credenciales antiguas BUILD_PROVISION_PROFILE_BASE64 y elimina las llaves de legado. Consulte CAPGO_IOS_PROVISIONING_MAPMigración desde un perfil único para obtener más detalles. Almacenando credenciales de iOS

Sección titulada “Almacenando credenciales de iOS”

Section titled “Saving iOS Credentials”
ventana de terminal
bunx @capgo/cli@latest 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 provisionamiento (bundleId=pathSi solo hay un perfil y no hay un prefijo bundleId, CLI se infiere automáticamente desde el perfil.Sí (lanzamiento)
--apple-key <path>Ruta al archivo de 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>App Store Connect API Identificador de emisor (UUID)Ver nota¹
--apple-team-id <id>App Store Connect Identificador de equipoSí
--apple-id <email>Correo electrónico de ID de Apple para subir contraseña de aplicación (alternativa al API clave)Ver nota²
--apple-app-specific-password <password>Contraseña de aplicación específica (xxxx-xxxx-xxxx-xxxx)Ver nota²
--apple-app-id <id>Numeric App Store Connect app ID (e.g. 1234567890)Ver nota²
--ios-distribution <mode>Modo de distribución: app_store (por defecto) o ad_hocNo
--output-uploadHabilitar un enlace de descarga temporal de Capgo para el artefacto de compilaciónNo (por defecto: false)
--output-retention <seconds>How long to keep build outputs (e.g. 3600s)No (por defecto: 3600s)
--skip-build-number-bumpSkip automatic build-number incrementNo

Sección titulada “¿Qué se Almacena”

Sección titulada “¿Qué se Almacena”

Cuando guardes las credenciales de iOS, el CLI:

  1. Lee los archivos de certificado y perfil de provisión
  2. Convierte a codificación base64
  3. Almacena en ellos ~/.capgo-credentials/credentials.json (o .capgo-credentials.json con --local)
  4. Almacena contraseñas e IDs como texto plano (solo archivos locales)

La estructura de archivo almacenada:

{
"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"
}
}
ventana de terminal
bunx @capgo/cli@latest 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
OptionOpciónDescripción
--keystore <path>Ruta al archivo .keystore o .jksSí (versión de lanzamiento)
--keystore-alias <alias>Alias de clave en el keystoreSí (lanzamiento)
--keystore-key-password <password>Contraseña para la clave de aliasSí (lanzamiento)
--keystore-store-password <password>Contraseña para el keystoreSí (lanzamiento)
--play-config <path>Ruta al archivo JSON de servicio de Play StoreYes (submission)

Al guardar credenciales de Android, el CLI:

  1. Lee los archivos keystore y JSON de servicio
  2. Los convierte a codificación base64
  3. Los almacena en ~/.capgo-credentials/credentials.json o .capgo-credentials.json con --local)
  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 has guardado credenciales, se utilizan automáticamente cuando construyes:

Ventana de terminal
# Credentials automatically loaded from ~/.capgo-credentials/credentials.json
bunx @capgo/cli@latest build request com.example.app --platform ios

También puede sobreescribir las credenciales guardadas utilizando variables de entorno:

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

Orden de precedencia:

  1. Variables de entorno (prioridad más alta)
  2. Credenciales guardadas (~/.capgo-credentials/credentials.json, o locales) .capgo-credentials.json)
  3. Sin credenciales (prioridad más baja)

Muestra las credenciales que has guardado:

Ventana de terminal
bunx @capgo/cli@latest build credentials list

__CAPGO_KEEP_0__

📋 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/credentials.json
🔒 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.

Seguridad en almacenamiento local

Seguridad en almacenamiento local
  1. Permisos de archivo

    Ventana de terminal
    # Global credentials directory + file
    chmod 700 ~/.capgo-credentials
    chmod 600 ~/.capgo-credentials/credentials.json
    # Local (per-project) credentials, if you use --local
    chmod 600 .capgo-credentials.json
  2. No cometer credenciales

    Ventana de terminal
    # Ignore the per-project credentials file (used with --local)
    echo ".capgo-credentials.json" >> .gitignore

    La archivo global se encuentra en tu directorio de inicio, fuera del repositorio.

  3. Credenciales separadas

    • Usar credenciales diferentes para el desarrollo local vs CI/CD
    • Rotar credenciales con regularidad
    • No compartir credenciales entre miembros del equipo

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

En lugar de codificar manualmente cada archivo de credenciales en base64 (consulte abajo) build credentials manage genera el archivo para ti:

ventana de terminal
bunx @capgo/cli@latest build credentials manage
# pick your app → choose "Export to .env"

Escribe un .env.capgo.<appId>.<platform> escribe un archivo (permisos 0600) que contiene cada credencial guardada como una variable de entorno — cada línea es un secreto para agregar a tu proveedor de CI/CD. Por defecto, se combinan ambas plataformas; agrega --platform ios o --platform android Para limitar el alcance a uno.

El CLI lee las siguientes variables de entorno para credenciales:

Credenciales de iOS:

VariableDescripciónFormatoRequerido
BUILD_CERTIFICATE_BASE64Certificado P12/PKCS12 para la firma de 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_IDID de clave de App Store Connect para APICadena de texto (por ejemplo, “ABC1234567”)Ver nota¹
APPLE_ISSUER_IDApp Store Connect API Identificador de emisorcadena de UUIDVer nota¹
APPLE_KEY_CONTENTApp Store Connect API clave (contenido del archivo .p8)Base64Ver nota¹
APP_STORE_CONNECT_TEAM_IDID de equipo de desarrollador de Applecadena (por ejemplo, ‘XXXXXXXXXX’)Sí
CAPGO_IOS_DISTRIBUTIONModo de distribución: app_store (por defecto) o ad_hocStringNo

Credenciales de Android:

VariableDescripciónFormatoRequerido
ANDROID_KEYSTORE_FILEArchivo de keystore para firmar APK/AABBase64Sí (versión de lanzamiento)
KEYSTORE_KEY_ALIASAlias de clave dentro del keystoreStringSí (lanzamiento)
KEYSTORE_KEY_PASSWORDContraseña para el alias de la claveTexto planoSí*
KEYSTORE_STORE_PASSWORDContraseña para el archivo del keystoreTexto planoSí*
PLAY_CONFIG_JSONJSON de cuenta de servicio de Google PlayBase64Yes (submission)

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

.github/flujos de trabajo/compilar.yml
name: Cloud Build
on:
push:
branches: [main]
jobs:
build-ios:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
- run: bun install
- run: bunx @capgo/cli@latest build request 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: oven-sh/setup-bun@v2
- run: bun install
- run: bunx @capgo/cli@latest build request 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:
bunx @capgo/cli@latest build credentials save --platform ios \
--ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
# ... other options
# Then copy CAPGO_IOS_PROVISIONING_MAP from ~/.capgo-credentials/credentials.json 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:

  • Los secretos están gestionados por tu plataforma CI/CD
  • No hay archivos de credenciales en ejecutores
  • Control de acceso y rotación fáciles
  • Registros de auditoría para el uso de secretos

Rota tus credenciales regularmente:

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

: Actualiza credenciales guardadas:

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

Si el build dice que no se encontraron credenciales:

  1. Verificar si las credenciales están guardadas:

    ventana de terminal
    bunx @capgo/cli@latest build credentials list
  2. Guardar credenciales si faltan:

    ventana de terminal
    bunx @capgo/cli@latest build credentials save --platform ios ...
  3. Verificar que el archivo de credenciales existe:

    ventana de terminal
    ls -la ~/.capgo-credentials/credentials.json # global
    ls -la .capgo-credentials.json # local (--local)

Corregir permisos de archivo:

Ventana de terminal
chmod 600 ~/.capgo-credentials/credentials.json # global
chmod 600 .capgo-credentials.json # local

Verificar que se ha especificado la plataforma correcta:

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

Si las credenciales parecen estar dañadas:

Ventana de terminal
# Clear all credentials
bunx @capgo/cli@latest build credentials clear
# Save again
bunx @capgo/cli@latest 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. Descodifica 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. Guarda utilizando el CLI

    Ventana de terminal
    bunx @capgo/cli@latest 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 tienes credenciales existentes guardadas en el formato antiguo (singular) BUILD_PROVISION_PROFILE_BASE64Corre:

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

    Esto convierte la legado de perfil único a un CAPGO_IOS_PROVISIONING_MAP y elimina el viejo BUILD_PROVISION_PROFILE_BASE64 y APPLE_PROFILE_NAME keys.

  4. Prueba la compilación

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

    Ventana de terminal
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

Ubicación del archivo

Ubicación del archivo

Los credenciales se almacenan en un archivo JSON único.

  • (por defecto): (default): ~/.capgo-credentials/credentials.json compartido en todos tus proyectos
  • Local (con --local): .capgo-credentials.json en el directorio raíz de tu proyecto — sobreescribe el archivo global para ese proyecto

El archivo se crea automáticamente la primera vez que guardas credenciales. Agrega .capgo-credentials.json a tu .gitignore Las credenciales por proyecto nunca se cometen.

Si estás utilizando Administración de credenciales planificar la automatización de CI/CD, conectarla con Capgo CI/CD para el flujo de trabajo del producto en Capgo CI/CD, Capgo compilaciones nativas para el flujo de trabajo del producto en Capgo compilaciones nativas, Capgo integraciones para el flujo de trabajo del producto en Capgo integraciones, Integración de CI/CD para los detalles de implementación en Integración de CI/CD, y GitHub integración de acciones para los detalles de implementación en GitHub integración de acciones.