Zum Inhalt springen

Anmeldedaten verwalten

Verwalten Sie Ihre iOS- und Android-Build-Zertifikate lokal für bequeme Cloud-Builds.

Übersicht

Übersicht

Capgo CLI speichert Ihre Build-Zugangsdaten auf Ihrem Rechner — nie auf Capgo’s Servern. Standardmäßig leben sie in einer globalen Datei, ~/.capgo-credentials/credentials.jsondie über alle Ihre Projekte hinweg geteilt wird. Geben Sie --local an, um sie projektweise anstatt .capgo-credentials.json zu speichern. Wenn Sie eine Build ausführen, werden die gespeicherten Zugangsdaten automatisch verwendet und sicher an Capgo gesendet, bevor sie nach Abschluss der Build 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, ein CI/CD-fertiges .env Datei exportieren oder eine Plattform-Anmeldeinformationen löschen können:

Terminalfenster
bunx @capgo/cli@latest build credentials manage
OptionBeschreibung
--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, skriptbare Befehle? Verwende die einzelnen Befehle unten.

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

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

Aktualisieren Sie vorhandene 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 Provisioning-Profile — neue Profile werden mit bestehenden kombiniert. Um die gesamte Provisioning-Karte zu ersetzen, fügen Sie --overwrite-ios-provisioning-map.

Beispiel — fügen Sie eine 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 sind 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

Convert legacy single-profile Format in das neue multi-target-Format umwandeln:

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 alten 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>Zugangsdaten für die .p12-ZertifikatsdateiJa (Release)
--ios-provisioning-profile <mapping>Zuweisung von Provisioning-Profilen (,). Wiederholbar für Apps mit mehreren Zielen. Wenn nur ein Profil und kein Vorlagename für bundleId, __CAPGO_KEEP_0__ wird automatisch aus dem Profil abgeleitet.bundleId=path). Repeatable for multi-target apps. If only one profile and no bundleId prefix, CLI auto-infers from the profile.Pfad zur App Store Connect __CAPGO_KEEP_0__ .p8-Schlüssel
--apple-key <path>Path to App Store Connect API .p8 keyApp Store Connect __CAPGO_KEEP_0__ Schlüssel-ID
--apple-key-id <id>App Store Connect API Key ID¹ Anmerkung: Bitte beachten Sie die Anforderungen von App Store Connect für die Verwendung von __CAPGO_KEEP_0__.
--apple-issuer-id <id>App Store Connect API Aussteller-ID (UUID)Siehe Anmerkung¹
--apple-team-id <id>App Store Connect Team-IDJa
--ios-distribution <mode>Verteilungsmodus: app_store (Standard) oder ad_hocNein
--output-uploadErmöglichen Sie eine zeitbegrenzte Capgo Download-Link für das Build-ArtifactNein (Standard: false)
--output-retention <seconds>Wie lange die Build-Ausgaben aufbewahren (z.B. 3600s)Nein (Standard: 3600s)
--skip-build-number-bumpAutomatische Inkrementierung der Build-Nummer überspringenNein

Wenn Sie iOS-Zertifikate speichern, werden die CLI:

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

Die gespeicherte Dateiuktur:

{
"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
OptionBeschreibungPflichtfeld
--keystore <path>Pfad zum .keystore- oder .jks-DateiJa (Release)
--keystore-alias <alias>Alias des Schlüssels im KeystoreJa (Release)
--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>Weg zum Play Store-Dienstkontoumlage JSONJa (Einreichung)

Wenn Sie Android-Kredentials speichern, werden sie als CLI:

  1. Die Keystore- und Dienstkontoumlage-JSON-Dateien werden gelesen
  2. Sie werden in Base64-Codierung umgewandelt
  3. Sie werden in ~/.capgo-credentials/credentials.json (oder) .capgo-credentials.json mit --local)
  4. Speichert Passwörter und Alias als plain text (nur lokale Dateien)

Die gespeicherte Dateistruktur:

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

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

Terminal-Fenster
# 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 mithilfe von Umgebungsvariablen überschreiben:

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

Prioritätsordnung:

  1. Umgebungsvariablen (höchste Priorität)
  2. Gespeicherte Anmeldeinformationen (~/.capgo-credentials/credentials.json, oder lokales Speicher .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. Keine Zugriffsdaten im Commit speichern

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

    Die globale Datei befindet sich im Home-Verzeichnis, außerhalb des Repositories.

  3. Sicherheitsdaten getrennt

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

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

Stattdessen bas64-codieren Sie jede Anmeldeinformationen-Datei manuell (siehe

CI/CD-Verwendung unterhalb) lasst build credentials manage Erstelle das Datei für dich:

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

Es schreibt eine .env.capgo.<appId>.<platform> Datei (Rechte 0600) die alle gespeicherten Anmeldeinformationen als Umgebungsvariable enthält — jede Zeile ist ein Geheimnis, das in deinem CI/CD-Anbieter hinzugefügt werden muss. Beide Plattformen sind standardmäßig kombiniert; füge --platform ios oder --platform android um es auf eine einzige Plattform zu beschränken.

Die CLI liest die folgenden Umgebungsvariablen für Anmeldeinformationen:

iOS-Anmeldeinformationen:

VariablenBeschreibungFormaterforderlich
BUILD_CERTIFICATE_BASE64P12/PKCS12-Zertifikat für code-SignierungBase64Ja (Release)
CAPGO_IOS_PROVISIONING_MAPJSON-Karte von Bundle-IDs zu Provisioning-Profile-DatenJSON-StringJa (Release)
P12_PASSWORDPasswort für das P12-ZertifikatPlaintextOptional
APPLE_KEY_IDApp Store Connect API Zertifikats-IDString (z.B. „ABC1234567“)Siehe Anmerkung¹
APPLE_ISSUER_IDApp Store Connect API Aussteller-IDUUID-StringSiehe Anmerkung¹
APPLE_KEY_CONTENTApp Store Connect API-Schlüssel (Inhalt der .p8-Datei)Base64Siehe Anmerkung¹
APP_STORE_CONNECT_TEAM_IDApple-Entwickler-Team-IDZeichenkette (z.B. „XXXXXXXXXX“)Ja
CAPGO_IOS_DISTRIBUTIONVerteilungsmodus: app_store (Standard) oder ad_hocZeichenketteNein

Android-Zertifikate:

VariableBeschreibungFormatErforderlich
ANDROID_KEYSTORE_FILEKeystore-Datei für das Signieren von APK/AABBase64Ja (Release)
KEYSTORE_KEY_ALIASAlias des Schlüssels innerhalb des KeystoresZeichenfolgeJa (Release)
KEYSTORE_KEY_PASSWORDKennwort für den Alias des SchlüsselsFreitextJa*
KEYSTORE_STORE_PASSWORDPasswort für das Keystore-DateiKlartextJa*
PLAY_CONFIG_JSONGoogle Play-Dienstkontoinformationen im JSON-FormatBase64Ja (Einreichung)

*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 }}

Werte für Base64 vorbereiten

Abschnitt: Werte für Base64 vorbereiten

Um Ihre Zertifikatsdateien in Base64 umzuwandeln, um sie als CI/CD-Schlüssel zu speichern:

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

Warum Umgebungsvariablen sicherer sind

Abschnitt: Warum Umgebungsvariablen sicherer sind

Diese Vorgehensweise ist sicherer, weil:

  • Geheimnisse werden von Ihrem CI/CD-Plattform verwaltet
  • Keine Zugriffskennwortdateien auf Ausführungsinstanzen
  • Einfache Rotation und Zugriffssteuerung
  • Protokolle für die Verwendung von Geheimnissen

Rotieren Sie Ihre Zugriffskennwörter regelmäßig:

  1. iOS: Erstellen Sie neue Zertifikate und API-Schlüssel jährlich
  2. Android: Ändern Sie die Schlüsselkonfiguration jährlich
  3. Nach Teamänderungen: Rotieren, wenn Teammitglieder verlassen

Gespeicherte Anmeldeinformationen 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 meldet, dass keine Anmeldeinformationen gefunden wurden:

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

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

Dateiberechtigungen korrigieren:

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

Benutzte Anmeldeinformationen werden nicht verwendet

Abschnitt: 'Benutzte Anmeldeinformationen werden nicht verwendet'

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

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

Benutzte Anmeldeinformationen neu speichern und überprüfen

Abschnitt: 'Benutzte Anmeldeinformationen neu speichern und überprüfen'

Wenn die Anmeldeinformationen korrupt erscheinen:

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

Migrieren von Umgebungsvariablen

Abschnitt: 'Migrieren von Umgebungsvariablen'

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

  1. Ihre aktuellen Umgebungsvariablen extrahieren

    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. Mit dem 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) haben BUILD_PROVISION_PROFILE_BASE64Terminalfenster

    Zum Clipboard kopieren
    bunx @capgo/cli@latest build credentials migrate --platform ios

    und entfernt die alten CAPGO_IOS_PROVISIONING_MAP und BUILD_PROVISION_PROFILE_BASE64 Schlüssel. APPLE_PROFILE_NAME Teste das Build

  4. Terminalfenster

    Zum Clipboard kopieren
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. (optional) run:

    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
  • Lokal (mit --local): .capgo-credentials.json in Ihrem Projektroot — überschreibt die globale Datei für dieses Projekt

Die Datei wird automatisch erstellt, wenn Sie die Anmeldeinformationen zum ersten Mal speichern. Hinzufügen .capgo-credentials.json zu Ihrem Projekt .gitignore Dadurch werden die Benutzereinstellungen pro Projekt nie committet.

Weitermachen bei der Verwaltung von Anmeldeinformationen

Abschnitt: Weitermachen bei der Verwaltung von Anmeldeinformationen

Wenn Sie "Verwaltung von Anmeldeinformationen" verwenden Verwaltung von Anmeldeinformationen um die CI/CD-Automatisierung zu planen, verbinden Sie es mit 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, und GitHub Actions-Integration für die Implementierungsdetails in GitHub Actions-Integration.