Zum Inhalt springen

Kredenzialverwaltung

Manage your iOS- und Android-Build-Zertifikate lokal für bequeme Cloud-Builds.

Capgo CLI speichert Ihre Build-Zertifikate auf Ihrem Computer — nie auf Capgo’s Servern. Standardmäßig leben sie in einer globalen Datei, ~/.capgo-credentials/credentials.json, die allen Ihren Projekten gemeinsam ist. Passen --local Sie sie per-Projekt an .capgo-credentials.json anstatt. Wenn Sie einen Build ausführen, werden die gespeicherten Anmeldeinformationen automatisch verwendet und sicher an Capgo gesendet, bevor sie nach Abschluss des Builds gelöscht werden.

Der schnellste Weg, um mit Ihren gespeicherten Anmeldeinformationen zu arbeiten, ist der interaktive Manager. Er öffnet ein TUI (das gleiche wie "uses") build init wobei Sie durchblättern können, was gespeichert ist, sehen können, was pro App und Plattform konfiguriert ist, eine CI/CD-fertige Datei exportieren oder eine Plattform-Anmeldeinformationen löschen können: .env Terminalfenster

Auf die Zwischenablage kopieren
bunx @capgo/cli@latest build credentials manage
Beschreibung__CAPGO_KEEP_0__
--appId <appId>App zum Verwalten (fragt dich nach, wenn nicht angegeben)
--platform <ios|android>Plattform zum Verwalten (fragt, wenn nicht angegeben)
--localVerwende das Projekt-spezifische .capgo-credentials.json anstatt das globale Datei

Präferiere einmalige, skriptierbare Befehle? Verwende die untenstehenden Einzelbefehle.

Speichere deine Build-Anmeldedaten lokal für automatischen Einsatz:

Terminal-Fenster
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]

Aktualisieren Sie bestehende Anmeldeinformationen ohne alles erneut bereitzustellen:

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

Der update Befehl verwendet additive Merge für Provisionierungsprofile — neue Profile werden mit bestehenden kombiniert. Um die gesamte Provisionierungsmap zu ersetzen, fügen Sie --overwrite-ios-provisioning-map.

Beispiel — fügen Sie ein Erweiterungsprofil zu bestehenden Anmeldeinformationen hinzu:

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

Der Update-Befehl akzeptiert die gleichen Optionen wie save aber alle sind optional — nur die Felder, die Sie bereitstellen, werden aktualisiert.

Anzeigen der derzeit gespeicherten Anmeldedaten (Passwörter werden maskiert):

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

Anmeldedaten aus Ihrem lokalen Gerät entfernen:

Terminal-Fenster
# 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

Convertieren Sie die legacy-Ein-Profil-Format in das neue Multi-Target-Format:

Terminalfenster
bunx @capgo/cli@latest build credentials migrate --platform ios

Die Migrationskommando erkennt alte BUILD_PROVISION_PROFILE_BASE64 Kredenziale, wandelt sie in CAPGO_IOS_PROVISIONING_MAP, und entfernt die legacy-Schlüssel. Siehe Migration von Single Profile für Details.

Terminal-Fenster
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"
OptionBeschreibungErforderlich
--certificate <path>Pfad zum .p12-ZertifikatsdateiJa (Release)
--p12-password <password>Passwort für die .p12-ZertifikatsdateiJa (Release)
--ios-provisioning-profile <mapping>Zuweisung von Provisioning-Profilen (bundleId=path). Wiederholbar für Mehrfachziel-Anwendungen. Wenn nur ein Profil und kein Vorwort für bundleId, CLI wird automatisch aus dem Profil abgeleitet.Ja (Release)
--apple-key <path>Pfad zu App Store Connect API .p8-SchlüsselSiehe Anmerkung¹
--apple-key-id <id>App Store Connect API Schlüssel-IDSiehe Anmerkung¹
--apple-issuer-id <id>App Store Connect API Issuer-ID (UUID)Siehe Anmerkung¹
--apple-team-id <id>App Store Connect Team-IDJa
--apple-id <email>Apple-ID-E-Mail für die App-spezifische-Passwort-Upload (Alternative zur API-Schlüssel)Siehe Anmerkung²
--apple-app-specific-password <password>App-spezifisches Passwort (xxxx-xxxx-xxxx-xxxx)Siehe Anmerkung²
--apple-app-id <id>Numerische App Store Connect-App-ID (z.B. 1234567890)Siehe Anmerkung²
--ios-distribution <mode>Verteilungsmodus: app_store (Standard) oder ad_hocNein
--output-uploadEin zeitlich begrenztes Capgo Download-Link für das Build-Artifact aktivierenNein (Standard: false)
--output-retention <seconds>Wie lange Build-Ausgaben speichern (z.B. 3600s)Nein (Standard: 3600s)
--skip-build-number-bumpAutomatische Build-Nummerierung überspringenNein

When you save iOS credentials, the CLI:

  1. Was wird gespeichert?
  2. Abschnitt mit dem Titel „Was wird gespeichert?“
  3. Wenn Sie iOS-Zertifikate speichern, werden die __CAPGO_KEEP_0__: ~/.capgo-credentials/credentials.json Liest die Zertifikats- und Provisioning-Profile-Dateien ein und konvertiert sie in Base64-Codierung und speichert sie in .capgo-credentials.json mit --local)
  4. Speichert Passwörter und IDs als plain text (lokale Dateien nur)

Die gespeicherte Dateistruktur:

{
"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"
}
}
Terminalfenster
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
OptionBeschreibungErforderlich
--keystore <path>Pfad zur .keystore- oder .jks-DateiJa (Release)
--keystore-alias <alias>Alias des Schlüssels im KeystoreJa (Veröffentlichung)
--keystore-key-password <password>Passwort für den Alias des SchlüsselsJa (Veröffentlichung)
--keystore-store-password <password>Passwort für das KeystoreJa (Veröffentlichung)
--play-config <path>Pfad zur Play Store-Dienstkonten-JSON-DateiJa (Einreichung)

Wenn Sie Android-Kredentials speichern, werden die CLI:

  1. Liest die Keystore- und Dienstkonten-JSON-Dateien
  2. Konvertiert sie in Base64-Codierung
  3. Speichert sie ab ~/.capgo-credentials/credentials.json (oder .capgo-credentials.json mit --local)
  4. Speichert Passwörter und Alias als plain text (nur lokale Dateien) ab

Die gespeicherte Dateistruktur:

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

Wenn Sie Anmeldeinformationen gespeichert haben, werden sie automatisch verwendet, wenn Sie bauen:

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

Sie können auch gespeicherte Anmeldeinformationen mit Umgebungsvariablen überschreiben:

Terminalfenster
# 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

Vorhochstufenfolge:

  1. Umgebungsvariablen (höchste Priorität)
  2. Gespeicherte Anmeldeinformationen (~/.capgo-credentials/credentials.json, oder lokales .capgo-credentials.json)
  3. Keine Anmeldeinformationen (niedrigste Priorität)

Liste der gespeicherten Anmeldeinformationen:

Terminalfenster
bunx @capgo/cli@latest build credentials list

Beispiel-Ausgabe:

📋 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.
  1. Dateizugriffsrechte

    Terminal-Fenster
    # 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. Nie Zugriffsdaten committen

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

    Das globale Datei lebt in Ihrem Home-Verzeichnis, außerhalb des Repositories.

  3. Geschützte Anmeldedaten

    • Verwenden Sie unterschiedliche Anmeldedaten für lokale Entwicklung gegenüber CI/CD
    • Rotieren Sie die Anmeldedaten regelmäßig
    • Teilen Sie keine Anmeldedaten zwischen Teammitgliedern

Für CI/CD-Umgebungen präferieren Sie Umgebungsvariablen vor gespeicherten Anmeldedaten.

Abschnitt mit dem Titel „Ein bereitgestelltes .env exportieren (empfohlen)“

Stattdessen müssen Sie die Anmeldeinformationen nicht manuell in Base64 kodieren (siehe unten) erzeugen Sie stattdessen das Datei für Sie:Fenster des Terminalfensters build credentials manage Zur Zwischenablage kopieren

Es schreibt eine Datei (Rechte
bunx @capgo/cli@latest build credentials manage
# pick your app → choose "Export to .env"

Stattdessen müssen Sie die Anmeldeinformationen nicht manuell in Base64 kodieren (siehe unten) .env.capgo.<appId>.<platform> erzeugen Sie stattdessen das Datei für Sie: 0600Fenster des Terminalfensters --platform ios Zur Zwischenablage kopieren --platform android Es schreibt eine Datei (Rechte

Die CLI liest die folgenden Umgebungsvariablen für Anmeldeinformationen:

iOS-Anmeldeinformationen:

VariableBeschreibungFormatErforderlich
BUILD_CERTIFICATE_BASE64P12/PKCS12-Zertifikat für code-SignierungBase64Ja (Veröffentlichung)
CAPGO_IOS_PROVISIONING_MAPJSON-Karte von Bundle-IDs zu Provisioning-Profile-DatenJSON-StringJa (Veröffentlichung)
P12_PASSWORDKennwort für das P12-ZertifikatKlartextOptional
APPLE_KEY_IDApp Store Connect API-Schlüssel-IDZeichenfolge (z.B. "ABC1234567")Siehe Anmerkung¹
APPLE_ISSUER_IDApp Store Connect API Aussteller-IDUUID-ZahlSiehe Anmerkung¹
APPLE_KEY_CONTENTApp Store Connect API Schlüssel (.p8-Datei-Inhalt)Base64Siehe Anmerkung¹
APP_STORE_CONNECT_TEAM_IDApple-Entwickler-Team-IDZeichenfolge (z.B. "XXXXXXXXXX")Ja
CAPGO_IOS_DISTRIBUTIONVerteilungsmodus: app_store (Standardmäßig) oder ad_hocZeichenfolgeNein

Android-Zertifikate:

VariableBeschreibungFormatErforderlich
ANDROID_KEYSTORE_FILEKeystore-Datei für das Signieren von APK/AABBase64Ja (Release)
KEYSTORE_KEY_ALIASAlias des Schlüsselpaares innerhalb des KeystoresZeichenketteJa (Release)
KEYSTORE_KEY_PASSWORDPasswort für den Alias der SchlüsselPlaintextJa*
KEYSTORE_STORE_PASSWORDPasswort für das Keystore-FilePlaintextJa*
PLAY_CONFIG_JSONGoogle Play-Dienstkontoinformationen im JSON-FormatBase64Ja (Eingabe)

*Wenn nur ein Passwort bereitgestellt wird, wird es für beide verwendet KEYSTORE_KEY_PASSWORD und KEYSTORE_STORE_PASSWORD.

.github/workflows/build.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 }}

Um Ihre Zertifikatsdateien in Base64 umzuwandeln, um CI/CD-Secrets zu verwenden:

Terminalfenster
# 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

Dieser Ansatz ist sicherer, weil:

  • Geheimnisse werden von Ihrem CI/CD-Plattform verwaltet
  • Keine Zugriffsdateien auf den Build-Servern
  • Einfache Rotation und Zugriffssteuerung
  • Audit-Verlaufsdaten für die Geheimnisnutzung

Rotieren Sie Ihre Zugriffsdaten regelmäßig:

  1. iOS: Erstellen Sie neue Zertifikate und API-Schlüssel jährlich
  2. Android: Jährlich Passwörter des Keystores ändern
  3. Nach Team-Änderungen: Rotieren, wenn Teammitglieder wechseln

Speicherter Zugriff aktualisieren:

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

Wenn das Build besagt, dass keine Zugriffsberechtigungen gefunden wurden:

  1. Überprüfen, ob Anmeldeinformationen gespeichert sind:

    Terminal-Fenster
    bunx @capgo/cli@latest build credentials list
  2. Speichern Sie die Anmeldeinformationen, wenn sie fehlen:

    Terminal-Fenster
    bunx @capgo/cli@latest build credentials save --platform ios ...
  3. Überprüfen Sie, ob das Dateisystem für die Anmeldeinformationen existiert:

    Terminal-Fenster
    ls -la ~/.capgo-credentials/credentials.json # global
    ls -la .capgo-credentials.json # local (--local)

„Zugriffsverbot“ beim Lesen von Anmeldeinformationen

Abschnitt mit dem Titel „Zugriffsverbot“ beim Lesen von Anmeldeinformationen

Dateiberechtigungen korrigieren:

Terminalfenster
chmod 600 ~/.capgo-credentials/credentials.json # global
chmod 600 .capgo-credentials.json # local

Überprüfen Sie, ob die richtige Plattform angegeben ist:

Terminalfenster
# 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

Wenn Kontodaten beschädigt erscheinen:

Terminalfenster
# Clear all credentials
bunx @capgo/cli@latest build credentials clear
# Save again
bunx @capgo/cli@latest build credentials save --platform ios ...

Migration von Umgebungsvariablen

Sektion: Migration von Umgebungsvariablen

Wenn Sie derzeit Umgebungsvariablen verwenden, können Sie zu gespeerten Anmeldeinformationen migrieren:

  1. Ziehen Sie Ihre aktuellen Umgebungsvariablen heraus

    Terminal-Fenster
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. Base64-Dateien wieder in die Originaldateien zurückdekodieren (falls erforderlich)

    Terminal-Fenster
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Mithilfe von CLI speichern

    Terminal-Fenster
    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"

    Wenn Sie bereits gespeicherte Anmeldeinformationen in der alten Format (einzeln BUILD_PROVISION_PROFILE_BASE64) haben, führen Sie Folgendes aus:

    Terminalfenster
    bunx @capgo/cli@latest build credentials migrate --platform ios

    Dies wandelt das legale single-Profil in ein CAPGO_IOS_PROVISIONING_MAP und entfernt die alten BUILD_PROVISION_PROFILE_BASE64 und APPLE_PROFILE_NAME Schlüssel.

  4. Testen Sie die Build

    Terminalfenster
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. Umweltvariablen entfernen (optional)

    Terminalfenster
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

Die Anmeldeinformationen werden in einer einzelnen JSON-Datei gespeichert:

  • Global (Standard): ~/.capgo-credentials/credentials.json — auf allen Projekten gemeinsam
  • Local (mit __CAPGO_KEEP_0__ --local): .capgo-credentials.json in Ihrem Projekt-Root — überschreibt die globale Datei für dieses Projekt

Die Datei wird automatisch erstellt, wenn Sie die ersten Anmeldeinformationen speichern. Fügen Sie .capgo-credentials.json zu Ihrem .gitignore so werden die Anmeldeinformationen pro Projekt nie committet.

Wenn Sie die Verwaltung von Anmeldeinformationen verwenden Verwaltung von Anmeldeinformationen für die Automatisierung von CI/CD zu planen, mit ihm verbunden Capgo CI/CD für den Produktworkflow in Capgo CI/CD Capgo Native Builds für den Produktworkflow in Capgo Native Builds Capgo Integrations für den Produktworkflow in Capgo Integrations CI/CD-Integration für die Implementierungsdetails in CI/CD-Integration GitHub Actions-Integration für die Implementierungsdetails in GitHub Actions-Integration