Zum Inhalt springen

Anmeldeinformationen verwalten

Ihre iOS- und Android-Build-Zertifikate lokal verwalten, um Cloud-Builds zu erleichtern.

Capgo CLI speichert Ihre Build-Zertifikate auf Ihrem Gerät — nie auf Capgo’s Servern. Standardmäßig leben sie in einer globalen Datei, ~/.capgo-credentials/credentials.json, die in allen Ihren Projekten gemeinsam genutzt wird. Geben Sie --local an, um sie pro Projekt zu speichern .capgo-credentials.json stattdessen. 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.

Interaktive Anmeldeinformationen verwalten

Abschnitt mit dem Titel “Kredite interaktiv verwalten”

Der schnellste Weg, um mit Ihren gespeicherten Krediten zu arbeiten, ist der interaktive Manager. Er öffnet ein TUI (das gleiche wie build init verwendet) , wo Sie durchsehen können, was gespeichert ist, sehen können, was pro App und Plattform konfiguriert ist, eine CI/CD-fertige .env Datei exportieren oder die Kredite einer Plattform löschen:

Terminalfenster
bunx @capgo/cli@latest build credentials manage
OptionBeschreibung
--appId <appId>App zum Verwalten (fragt Sie nach, wenn nicht angegeben)
--platform <ios|android>Plattform zum Verwalten (fragt Sie nach, wenn nicht angegeben)
--localVerwenden Sie die Projektdatei .capgo-credentials.json anstatt der globalen Datei

Präferieren Sie eine einmalige, skriptbare Befehlsausführung? Verwenden Sie die unten aufgeführten Befehle.

Speichern Sie Ihre Build-Sicherheitsdaten lokal für automatische Verwendung:

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

Aktualisieren Sie bestehende Sicherheitsdaten ohne alles erneut bereitzustellen:

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

Die update Befehl verwendet additiver Merge für Provisionierungsprofile — neue Profile werden mit bestehenden kombiniert. Um die gesamte Provisionierungsmap zu ersetzen, fügen Sie anstelle dessen --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"

Die Aktualisierungsanweisung akzeptiert die gleichen Optionen wie save aber alle sind optional — nur die Felder, die Sie bereitstellen, werden aktualisiert.

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

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

Entfernen Sie gespeicherte Anmeldeinformationen von Ihrem lokalen Computer:

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

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

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

Die Migrationskommando erkennt alte Daten BUILD_PROVISION_PROFILE_BASE64 Authentifizierungsdaten, wandelt sie in CAPGO_IOS_PROVISIONING_MAP, und entfernt die alten Schlüssel. Siehe Migration von Single Profile zur Details.

Terminalfenster
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-ZertifikatJa (Release)
--p12-password <password>Passwort für das .p12-ZertifikatYes (Veröffentlichung)
--ios-provisioning-profile <mapping>Zuweisung von Provisionierungsprofilen (bundleId=path). Wiederholbar für Mehrziel-Anwendungen. Wenn nur ein Profil und kein Vorlage für bundleId, CLI wird automatisch aus dem Profil abgeleitet.Yes (Veröffentlichung)
--apple-key <path>Weg 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 Aussteller-ID (UUID)Siehe Anmerkung¹
--apple-team-id <id>App Store Connect Team-IDYes
--apple-id <email>Apple ID-E-Mail für die Upload von App-Spezifischen Passwörtern (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-uploadAktivieren Sie einen zeitbegrenzten Capgo-Download-Link für das Build-ArtifactNein (Standard: false)
--output-retention <seconds>Wie lange Build-Ausgaben aufbewahren (z.B. 3600s)Nein (Standard: 3600s)
--skip-build-number-bumpAutomatische Erhöhung der Buildnummer überspringenNein

Wenn Sie iOS-Zertifikate speichern, wird der CLI:

  1. Liest die Zertifikats- und Provisioning-Profile-Dateien
  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 (nur lokale Dateien)

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

Android-Benutzerkennungen speichern

Abschnitt: Android-Benutzerkennungen speichern

Vollständiges Beispiel

Abschnitt: Vollständiges Beispiel
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>Weg 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 (Release)
--keystore-store-password <password>Passwort für den KeystoreJa (Veröffentlichung)
--play-config <path>Pfad zur Play Store-Dienstkontoinformationen in JSON-FormatJa (Einreichung)

Wenn Sie Android-Kredentials speichern, werden die CLI:

  1. Liest die Keystore- und Dienstkontoinformationen in JSON-Format
  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 Alias als plain text (nur lokale Dateien)

Die gespeicherte Dateiuktur:

{
"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 mit 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ätsreihenfolge:

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

Gespeicherte Anmeldeinformationen anzeigen

Abschnitt: "Gespeicherte Anmeldeinformationen anzeigen"

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. Dateirechte

    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 Anmeldeinformationen 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. Getrennte Anmeldeinformationen

    • Verwenden Sie unterschiedliche Anmeldeinformationen für lokale Entwicklung und CI/CD
    • Rotieren Sie die Anmeldeinformationen regelmäßig
    • Keine Anmeldeinformationen zwischen Teammitgliedern teilen

Für CI/CD-Umgebungen Umgebungsvariablen vor gespeicherten Anmeldeinformationen bevorzugen. Stattdessen Umgebungsvariablen vor gespeicherten Anmeldeinformationen bevorzugen.

Stattdessen Umgebungsvariablen vor gespeicherten Anmeldeinformationen bevorzugen.

Stattdessen Umgebungsvariablen vor gespeicherten Anmeldeinformationen bevorzugen. Stattdessen Umgebungsvariablen vor gespeicherten Anmeldeinformationen bevorzugen.Stattdessen Umgebungsvariablen vor gespeicherten Anmeldeinformationen bevorzugen. build credentials manage für Sie generieren:

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

Es schreibt ein .env.capgo.<appId>.<platform> Datei (Rechte 0600) mit allen gespeicherten Anmeldeinformationen als Umgebungsvariable — jede Zeile ist ein Geheimnis, das Sie in Ihrem CI/CD-Anbieter hinzufügen müssen. Beide Plattformen sind standardmäßig kombiniert; fügen Sie --platform ios oder --platform android um es auf eine einzige Plattform zu beschränken.

CLI liest die folgenden Umgebungsvariablen für Anmeldeinformationen:

iOS-Anmeldeinformationen:

VariableBeschreibungFormatZwingend
BUILD_CERTIFICATE_BASE64P12/PKCS12-Zertifikat für code-SignierungBase64Ja (Release)
CAPGO_IOS_PROVISIONING_MAPJSON-Karte von Bundle-IDs zu Provisionierungsprofil-DatenJSON-StringJa (Release)
P12_PASSWORDPasswort für das P12-ZertifikatPlaintextOptional
APPLE_KEY_IDApp Store Connect API Schlüssel-IDZeichenfolge (z.B. „ABC1234567“)Siehe Anmerkung¹
APPLE_ISSUER_IDApp Store Connect API Aussteller-IDUUID-ZeichenfolgeSiehe 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 oder ad_hocZeichenfolgeNein

Android-Zertifikate:

VariableBeschreibungFormatErforderlich
ANDROID_KEYSTORE_FILE__CAPGO_KEEP_0__ Datei für die Signierung von APK/AABBase64Ja (Release)
KEYSTORE_KEY_ALIAS__CAPGO_KEEP_0__ Alias innerhalb der Datei für die SignierungZeichenfolgeJa (Release)
KEYSTORE_KEY_PASSWORDKennwort für den AliasFreitextJa*
KEYSTORE_STORE_PASSWORDKennwort für die Datei für die SignierungEinfaches TextJa
PLAY_CONFIG_JSONGoogle Play-Dienstkontoinformationen in JSON-FormatBase64Ja (Einreichung)

*Wenn nur ein Passwort angegeben 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 konvertieren:

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

Abschnitt mit dem Titel “Warum Umgebungsvariablen sicherer sind”

Diese Methode ist sicherer, weil:

Geheime Daten werden von Ihrem CI/CD-Plattform verwaltet

  • Geheime Daten werden von Ihrem CI/CD-Plattform verwaltet
  • Keine Zertifikatsdateien auf Build-Servern
  • Einfache Rotation und Zugriffssteuerung
  • Rechnungspfade für geheime Nutzung

Rotieren Sie Ihre Zertifikate regelmäßig:

  1. iOS: Erstellen Sie neue Zertifikate und API-Schlüssel jährlich
  2. Android: Ändern Sie die Passwörter für den Keystore jährlich
  3. Nach Teamänderungen: Rotieren Sie, wenn Teammitglieder gehen

Gespeicherte Anmeldeinformationen aktualisieren:

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

”No credentials found”

Keine Anmeldeinformationen gefunden“

Abschnitt mit dem Titel „Keine Anmeldeinformationen gefunden“

  1. Wenn das Build meldet, dass keine Anmeldeinformationen gefunden wurden::

    Überprüfen, ob Anmeldeinformationen gespeichert sind
    bunx @capgo/cli@latest build credentials list
  2. Zur Zwischenablage kopieren:

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

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

„Zugriffsverbot“ beim Lesen der Anmeldeinformationen

Abschnitt mit dem Titel „Zugriffsverbot“ beim Lesen der Anmeldeinformationen

Dateiberechtigungen einstellen:

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

Ü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

Wenn Anmeldeinformationen wie beschädigt erscheinen:

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

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

  1. Aktuelle Umgebungsvariablen extrahieren

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

    Terminalfenster
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Mit dem CLI speichern

    Terminalfenster
    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 gespeerte Anmelddaten 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 die Legacy-Ein-Profil- in ein CAPGO_IOS_PROVISIONING_MAP und entfernt die alten BUILD_PROVISION_PROFILE_BASE64 und APPLE_PROFILE_NAME Schlüssel.

  4. Teste die Build

    Terminal-Fenster
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. Entferne Umgebungsvariablen (optional)

    Terminal-Fenster
    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 Ihren Projekten gemeinsam
  • Local (mit --local): .capgo-credentials.json im Projekt-Root — überschreibt die globale Datei für dieses Projekt

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

Wenn Sie " Verwaltung von Anmeldeinformationen zur Planung der CI/CD-Automatisierung verwenden, verbinden Sie es mit Capgo CI/CD für das 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