Gestión de credenciales
Copia una solicitud de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Gestione sus credenciales de compilación de iOS y Android localmente para realizar compilaciones en la nube de manera conveniente.
Resumen
Título de sección “Resumen”Capgo CLI almacena sus credenciales de compilación en tu máquina — nunca en los servidores de Capgo. Por defecto, viven en uno global archivo, ~/.capgo-credentials/credentials.jsoncompartido entre todos tus proyectos. Pasa --local para mantenerlos por proyecto en .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.
Comandos
Sección titulada “Comandos”Administrar Credenciales Interactivamente
Sección titulada “Administrar credenciales de manera interactiva”La forma más rápida de trabajar con sus credenciales guardadas es el administrador interactivo. Abre una IU de terminal (la misma que build init usa) donde puede navegar por lo que se almacena, ver qué está configurado por aplicación y plataforma, exportar un archivo .env listo para CI/CD, o eliminar las credenciales de una plataforma:
bunx @capgo/cli@latest build credentials manage| Opción | Descripción |
|---|---|
--appId <appId> | Aplicación para administrar (te pide que elijas si se omite) |
--platform <ios|android> | Plataforma para administrar (te pide que elijas si se omite) |
--local | Usar el archivo por proyecto .capgo-credentials.json en lugar del archivo global |
¿Preferir uno comando a la vez, ejecutable desde la terminal? Utilice los comandos individuales a continuación.
Guardar credenciales
Sección titulada “Guardar credenciales”Almacena tus credenciales de compilación localmente para su uso automático:
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]Actualizar credenciales
Sección titulada “Actualizar credenciales”Actualiza credenciales existentes parcialmente sin tener que proporcionar todo de nuevo:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]El update command uses merge aditivo para perfiles de provisión — nuevos perfiles se fusionan con los existentes. Para reemplazar la mapa de provisión completo en su lugar, agregue --overwrite-ios-provisioning-map.
Ejemplo — agregar un perfil de extensión a credenciales existentes:
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 todas son opcionales — solo los campos que proporciona se actualizan.
Lista de credenciales
Sección titulada “Lista de credenciales”Ver credenciales guardadas actualmente (las contraseñas están ocultas):
bunx @capgo/cli@latest build credentials list
# List credentials for a specific appbunx @capgo/cli@latest build credentials list --appId com.example.appEliminar credenciales
Sección titulada “Eliminar credenciales”Eliminar credenciales guardadas de tu máquina local:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Clear credentials for a specific app + platformbunx @capgo/cli@latest build credentials clear --appId com.example.app --platform iosMigrar credenciales
Sección titulada “Migrar credenciales”Convertir el formato de legado de un solo perfil al nuevo formato de múltiples objetivos:
bunx @capgo/cli@latest build credentials migrate --platform iosEl comando de migración detecta lo viejo BUILD_PROVISION_PROFILE_BASE64 credenciales, las convierte a CAPGO_IOS_PROVISIONING_MAP, y elimina las claves de legado. Consulte Migración desde Perfil Único para obtener más detalles.
Almacenando credenciales de iOS
Sección titulada “Almacenando credenciales de iOS”Ejemplo completo
Sección titulada “Ejemplo completo”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"Opciones de iOS
Sección titulada “Opciones de iOS”| Opción | Descripción | Requerido |
|---|---|---|
--certificate <path> | Ruta del archivo de certificado .p12 | Sí (lanzamiento) |
--p12-password <password> | Contraseña para el archivo de certificado .p12 | Sí (lanzamiento) |
--ios-provisioning-profile <mapping> | Mapa de perfil de provisión (,). Repetible para aplicaciones multi-objetivo. Si solo hay un perfil y no hay prefijo de bundleId, __CAPGO_KEEP_0__ se infiere automáticamente desde el perfil.bundleId=path). Repeatable for multi-target apps. If only one profile and no bundleId prefix, CLI auto-infers from the profile. | Ruta de la clave __CAPGO_KEEP_0__ .p8 de App Store Connect |
--apple-key <path> | Path to App Store Connect API .p8 key | ID de clave de App Store Connect __CAPGO_KEEP_0__ |
--apple-key-id <id> | App Store Connect API Key ID | ID de emisor de App Store Connect __CAPGO_KEEP_0__ (UUID) |
--apple-issuer-id <id> | App Store Connect API Issuer ID (UUID) | ID de equipo de App Store Connect |
--apple-team-id <id> | Sí | Sí (lanzamiento) |
--apple-id <email> | Correo electrónico de Apple ID para subir contraseña específica de la aplicación (alternativa a la clave API) | Ver nota² |
--apple-app-specific-password <password> | Contraseña específica de la aplicación (xxxx-xxxx-xxxx-xxxx) | Ver nota² |
--apple-app-id <id> | ID numérico de la aplicación de App Store Connect (por ejemplo, 1234567890) | Ver nota² |
--ios-distribution <mode> | Modo de distribución: app_store (predeterminado) o ad_hoc | No |
--output-upload | Habilitar un enlace de descarga temporal Capgo para el artefacto de la compilación | No (predeterminado: false) |
--output-retention <seconds> | ¿Cuánto tiempo mantener los resultados de compilación (por ejemplo, 3600s) | No (por defecto: 3600s) |
--skip-build-number-bump | Saltar el incremento automático del número de compilación | No |
¿Qué se Almacena
Sección titulada “¿Qué se Almacena”Cuando guardas credenciales de iOS, el CLI:
- Lee los archivos de certificado y perfil de provisión
- Los convierte a codificación base64
- Los guarda en
~/.capgo-credentials/credentials.json(o.capgo-credentials.jsoncon--local) - 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" }}Almacenar credenciales de Android
Sección titulada “Almacenar credenciales de Android”Ejemplo completo
Sección titulada “Ejemplo completo”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.jsonOpciones de Android
Sección titulada “Opciones de Android”| Opción | Descripción | Requerido |
|---|---|---|
--keystore <path> | Ruta al archivo .keystore o .jks | Sí (lanzamiento) |
--keystore-alias <alias> | Alias de clave en el keystore | Sí (lanzamiento) |
--keystore-key-password <password> | Contraseña para el alias de clave | Sí (lanzamiento) |
--keystore-store-password <password> | Contraseña para el keystore | Sí (lanzamiento) |
--play-config <path> | Ruta al archivo JSON de servicio de tienda de Play | Sí (envío) |
¿Qué se almacena?
Sección titulada “¿Qué se almacena?”Cuando guardas credenciales de Android, el CLI:
- Lee los archivos de keystore y JSON de servicio
- Los convierte a codificación base64
- Los almacena en
~/.capgo-credentials/credentials.json(o.capgo-credentials.jsoncon--local) - Almacena contraseñas y alias como texto plano (solo archivos locales)
La estructura de archivo almacenada:
{ "android": { "ANDROID_KEYSTORE_FILE": "...", "PLAY_CONFIG_JSON": "...", "KEYSTORE_KEY_ALIAS": "my-key-alias", "KEYSTORE_KEY_PASSWORD": "...", "KEYSTORE_STORE_PASSWORD": "..." }}Usando credenciales guardadas
Sección titulada “Usando credenciales guardadas”Una vez que hayas guardado credenciales, se utilizan automáticamente cuando construyes:
# Credentials automatically loaded from ~/.capgo-credentials/credentials.jsonbunx @capgo/cli@latest build request com.example.app --platform iosTambién puedes sobreescribir credenciales guardadas utilizando variables de entorno:
# Environment variables take precedence over saved credentialsBUILD_CERTIFICATE_BASE64="..." \P12_PASSWORD="different-password" \bunx @capgo/cli@latest build request com.example.app --platform iosOrden de precedencia:
- Variables de entorno (prioridad más alta)
- Credenciales guardadas (
~/.capgo-credentials/credentials.json, o local.capgo-credentials.json) - No hay credenciales (prioridad más baja)
Ver credenciales guardadas
Sección titulada “Ver credenciales guardadas”Muestra las credenciales que has guardado:
bunx @capgo/cli@latest build credentials listEjemplo 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/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.Prácticas recomendadas de seguridad
Sección titulada “Prácticas recomendadas de seguridad”Seguridad de Almacenamiento Local
Sección titulada “Seguridad de Almacenamiento Local”-
Permisos de Archivo
Ventana de Terminal # Global credentials directory + filechmod 700 ~/.capgo-credentialschmod 600 ~/.capgo-credentials/credentials.json# Local (per-project) credentials, if you use --localchmod 600 .capgo-credentials.json -
Nunca Compartir Credenciales
Ventana de Terminal # Ignore the per-project credentials file (used with --local)echo ".capgo-credentials.json" >> .gitignoreEl archivo global vive en tu directorio de inicio, fuera del repositorio.
-
Credenciales Separadas
- Usar credenciales diferentes para desarrollo local vs CI/CD
- Rotar credenciales con regularidad
- No comparten credenciales entre miembros del equipo
Uso de CI/CD
Sección titulada “Uso de CI/CD”Para entornos de CI/CD, prefieren variables de entorno sobre credenciales guardadas.
Exporte un archivo .env listo para usar .env (recomendado)
Sección titulada “Exporte un archivo .env listo para usar (recomendado)”En lugar de codificar cada archivo de credenciales en base64 a mano (consulte abajo), build credentials manage genera el archivo para ti:
bunx @capgo/cli@latest build credentials manage# pick your app → choose "Export to .env"Escribe un .env.capgo.<appId>.<platform> 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 limitarlo a una.
Referencia completa de variables de entorno
Título de la sección “Referencia completa de variables de entorno”El CLI lee las siguientes variables de entorno para credenciales:
Credentials de iOS:
| Variable | Descripción | Formato | Requerido |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | Certificado P12/PKCS12 para firmar code | Base64 | Sí (lanzamiento) |
CAPGO_IOS_PROVISIONING_MAP | Mapa JSON de IDs de paquetes a datos de perfil de provisión | JSON string | Sí (lanzamiento) |
P12_PASSWORD | Contraseña para el certificado P12 | Texto plano | Opcional |
APPLE_KEY_ID | App Store Connect API ID de clave | Cadena de caracteres (por ejemplo, “ABC1234567”) | Vea nota¹ |
APPLE_ISSUER_ID | App Store Connect API ID de emisor | Cadena de caracteres UUID | Vea nota¹ |
APPLE_KEY_CONTENT | Contenido de la clave App Store Connect API (.f8 archivo) | Base64 | Vea la nota¹ |
APP_STORE_CONNECT_TEAM_ID | ID del equipo de desarrolladores de Apple | Cadena (por ejemplo, “XXXXXXXXXX”) | Sí |
CAPGO_IOS_DISTRIBUTION | Modo de distribución: app_store (por defecto) o ad_hoc | Cadena | No |
credenciales de Android:
| Variable | Descripción | Formato | Requerido |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | Archivo de keystore para firmar APK/AAB | Base64 | Sí (lanzamiento) |
KEYSTORE_KEY_ALIAS | Alias de clave dentro del keystore | Cadena de texto | Sí (lanzamiento) |
KEYSTORE_KEY_PASSWORD | Contraseña para el alias de clave | Texto plano | Sí* |
KEYSTORE_STORE_PASSWORD | Contraseña para el archivo de keystore | Texto plano | Sí |
PLAY_CONFIG_JSON | Archivo JSON de servicios de Google Play | Base64 | Sí (envío) |
*Si solo se proporciona una contraseña, se utilizará para ambos KEYSTORE_KEY_PASSWORD y KEYSTORE_STORE_PASSWORD.
Ejemplo de acciones de GitHub
Título de la sección “GitHub Actions Example”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 }}Preparando valores Base64
Sección titulada “Preparando valores Base64”Para convertir tus archivos de credenciales a base64 para secretos de CI/CD:
# 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 JSONbase64 -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 de CI/CD
- No archivos de credenciales en ejecutores
- Rotación y control de acceso fácil
- Registros de auditoría para el uso de secretos
Rotación de credenciales
Título de la sección “Rotación de credenciales”Rotación de credenciales regular:
- iOS: Generar nuevos certificados y API claves anualmente
- Android: Cambiar contraseñas de keystore anualmente
- Después de cambios en el equipo: Rotar cuando los miembros del equipo dejen
Actualizar credenciales guardadas:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Solución de problemas
Sección titulada “Solución de problemas””No se encontraron credenciales”
Sección titulada “”No se encontraron credenciales””Si el build dice que no se encontraron credenciales:
-
Verificar si las credenciales están guardadas:
Ventana de terminal bunx @capgo/cli@latest build credentials list -
Guardar credenciales si faltan:
Ventana de terminal bunx @capgo/cli@latest build credentials save --platform ios ... -
Verificar que el archivo de credenciales existe:
Ventana de terminal ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Denegado” cuando se lee credenciales
Sección titulada ““Denegado” cuando se lee credenciales”Corregir permisos de archivo:
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localNo se están utilizando las credenciales
Sección titulada “No se están utilizando las credenciales”Verifique que la plataforma correcta está especificada:
# Make sure --platform matches saved credentialsbunx @capgo/cli@latest build request com.example.app --platform ios # Uses ios credentialsbunx @capgo/cli@latest build request com.example.app --platform android # Uses android credentialsBorrar y volver a guardar credenciales
Sección titulada “Borrar y volver a guardar credenciales”Si las credenciales parecen estar dañadas:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Save againbunx @capgo/cli@latest build credentials save --platform ios ...Migración de Variables de Entorno
Sección titulada “Migración de Variables de Entorno”Si actualmente está utilizando variables de entorno, puede migrar a credenciales guardadas:
-
Extraiga sus variables de entorno actuales
Ventana de terminal echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Volver a codificar archivos base64 a archivos originales (si es necesario)
Ventana de terminal echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
Guardar 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 (simple, separado por comas), ejecuta:
BUILD_PROVISION_PROFILE_BASE64Ventana de terminalVentana de terminal bunx @capgo/cli@latest build credentials migrate --platform iosEsta convierte la legado de perfil único a un
CAPGO_IOS_PROVISIONING_MAPy elimina el viejoBUILD_PROVISION_PROFILE_BASE64yAPPLE_PROFILE_NAMEllaves. -
Prueba la compilación
Ventana de terminal bunx @capgo/cli@latest build request com.example.app --platform ios -
Eliminar variables de entorno (opcional)
Ventana de terminal unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
Ubicación del archivo
Sección titulada “Ubicación del archivo”Las credenciales se almacenan en un archivo JSON único:
- Global (por defecto):
~/.capgo-credentials/credentials.json— compartido por todos tus proyectos - Local (con
--local):.capgo-credentials.jsonen la 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 para que las credenciales por proyecto nunca se comiten.
Pasos siguientes
Sección titulada “Pasos siguientes”- Empezar - Crea tu primer build
- Compilaciones de iOS - Configuración de compilación específica de iOS
- Compilaciones de Android - Configuración de compilación específica de Android
- Resolución de problemas - Problemas y soluciones comunes
Necesitas ayuda?
Sección titulada “Necesitas ayuda?”- 📚 Guía de solución de problemas
- 💬 Comunidad de Discord
- 📧 Correo electrónico: support@capgo.app
Sigue adelante desde la gestión de credenciales
Sección titulada “Sigue adelante desde la gestión de credenciales”Si estás utilizando Gestión de credenciales para planificar la automatización de CI/CD, conecta 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 Construcción Nativa Capgo Integraciones para el flujo de trabajo del producto en Capgo Integraciones Integración CI/CD para el detalle de implementación en Integración CI/CD, y GitHub Integración de Acciones para el detalle de implementación en GitHub Integración de Acciones