__CAPGO_KEEP_0__ - Live Updates für __CAPGO_KEEP_1__ Apps

Benutzerdefinierte Speicherung

Capgo unterstützt benutzerdefinierte Speichersysteme für Ihre App-Bundles, sodass Sie Ihre Updates auf Ihrer eigenen Infrastruktur oder auf Diensten Dritter hosten können. Dies ist insbesondere nützlich für Organisationen mit spezifischen Sicherheitsanforderungen, Compliance-Anforderungen oder bestehender Speichereinrichtungen.

Benutzerdefinierte Speicherung in Capgo funktioniert, indem Sie Ihr Bundle an einen externen Ort hochladen und Capgo die URL mitteilen, über die es abgerufen werden kann. Die Capgo SDK laden dann Updates direkt aus Ihrem benutzerdefinierten Speicherort und nicht von Capgo’s Standard-Cloud-Speicher.

Die einfachste Möglichkeit, benutzerdefinierte Speicherung zu verwenden, besteht darin, Ihr Bundle an jede öffentlich zugängliche URL hochzuladen und diese URL Capgo bereitzustellen.

Terminalfenster
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip

Diese Kommandozeilenanweisung sagt Capgo, dass die Bundle an der angegebenen URL referenziert werden soll und nicht auf Capgo’s Cloudspeicher hochgeladen werden soll.

Für sichere externe Speicherung können Sie Ihr Bundle verschlüsseln und die Entschlüsselungsschlüssel bereitstellen:

Terminalfenster
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEY

Capgo bietet eine integrierte Unterstützung für Amazon S3 und S3-kompatible Speicherdienste. CLI kann automatisch Ihren Bundle auf S3 hochladen und Capgo konfigurieren, um die S3-URL zu verwenden.

Terminalfenster
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-bucket-name your-bucket-name

Für S3-kompatible Dienste oder benutzerdefinierte Endpunkte:

Terminalfenster
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-endpoint https://s3.your-provider.com \
--s3-bucket-name your-bucket-name \
--s3-port 443 \
--no-s3-ssl # Only if your endpoint doesn't support SSL
ParameterBeschreibungErforderlich
--s3-regionAWS-Region für Ihren S3-BucketJa
--s3-apikeyS3-Zugriffsschlüssel-IDJa
--s3-apisecretS3-SchlüsselzuführungscodeJa
--s3-bucket-name__CAPGO_KEEP_0__Ja
--s3-endpoint__CAPGO_KEEP_0__Nein
--s3-port__CAPGO_KEEP_0__Nein
--no-s3-ssl__CAPGO_KEEP_0__Nein

Wenn Sie eine benutzerdefinierte Speicherung verwenden, insbesondere mit Verschlüsselung, müssen Sie Ihre Bundles ordnungsgemäß vorbereiten. Dazu gehört die Erstellung eines Zip-Datei und optional deren Verschlüsselung.

Erstelle zunächst ein Zip-Datei Ihres App-Paketes:

Terminal-Fenster
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

Die Zip-Kommando gibt den Prüfsumme der Zip-Datei zurück. Sie können diese Prüfsumme verwenden, um die Zip-Datei zu verschlüsseln, wenn erforderlich. Verwenden Sie die --json Option, um eine strukturierte Ausgabe einschließlich der Prüfsumme zu erhalten.

Terminal-Fenster
npx @capgo/cli@latest bundle zip [appId] \
--path ./dist \
--bundle 1.2.3 \
--name myapp-v1.2.3 \
--json \
--no-code-check \
--key-v2 \
--package-json ../../package.json,./package.json
OptionBeschreibung
--pathPfad zum Ordner, der komprimiert werden soll (Standardwert: webDir aus capacitor.config)
--bundleBundle-Version-Nummer zur Namensgebung des Zip-Dateis
--nameBenutzerdefinierter Name für das Zip-Datei
--jsonAusgabeergebnisse in JSON-Format (enthält Prüfsumme)
--no-code-checkÜberspringen der Überprüfung auf notifyAppReady()-Aufruf und Indexdatei
--key-v2Verwendung von Verschlüsselung v2
--package-jsonPfade zu package.json-Dateien für monorepos (getrennt durch Komma)

Für eine erhöhte Sicherheit sollte das Zip-Bundle vor dem Hochladen verschlüsselt werden:

Terminal-Fenster
# Using default local key
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Using custom key file
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Using key data directly
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"

Die CHECKSUM Dieser Parameter ist erforderlich und sollte der Prüfsumme Ihres Zip-Datei sein. Sie können die Prüfsumme aus der Ausgabe der Zip-Befehlsausgabe (verwenden Sie die --json Option für strukturierte Ausgabe).

Standardmäßig wird der Verschlüsselungsbefehl Ihre lokale private Signierungsdatei verwenden. Sie können eine benutzerdefinierte Datei mithilfe der --key oder --key-data Optionen angeben.

Der Verschlüsselungsbefehl gibt die ivSessionKey zur Upload oder Dekompilierung zurück.

OptionBeschreibung
zipPath__CAPGO_KEEP_0__ (Pflicht)
checksum__CAPGO_KEEP_1__ (Pflicht) - erhalten Sie es mit der zip-Kommando
--key__CAPGO_KEEP_2__ (optional, verwendet lokale Schlüssel standardmäßig)
--key-data__CAPGO_KEEP_3__ (optional)
--json__CAPGO_KEEP_4__
  1. Ihre App erstellen:

    Terminal-Fenster
    npm run build
  2. Erstellen Sie ein Zip-Bundle:

    Terminal-Fenster
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3

    Beachten Sie den von diesem Befehl zurückgegebenen Prüfsummenwert.

  3. Verschlüsseln Sie das Bundle:

    Terminal-Fenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2

    Beachten Sie ivSessionKey aus der Ausgabe.

  4. Hochladen in Ihr Speicher: Laden Sie das verschlüsselte Zip-Datei in Ihr Hosting-Dienst hoch.

  5. Registrieren Sie sich bei Capgo:

    Terminal-Fenster
    npx @capgo/cli@latest bundle upload \
    --external https://your-cdn.com/bundles/com.example.app-1.2.3.zip \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_3

Beispiel 2: Direkter S3-Upload

Beispiel 2: Direkter S3-Upload
  1. Bauen Sie Ihre App:

    Terminal-Fenster
    npm run build
  2. Direkt auf S3 hochladen:

    Terminalfenster
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --channel Production
  1. Bauen und zippen:

    Terminalfenster
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Das Bundle verschlüsseln:

    Terminalfenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Sichere Hochladen auf S3:

    Terminalfenster
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_2 \
    --channel Production

Wenn Sie benutzerdefinierte Speicher verwenden, sollten Sie diese Sicherheitstipps beachten:

  • Verwenden Sie bei Bedarf signierte URLs oder Token-basierte Authentifizierung
  • Implementieren Sie korrekte CORS-Header für Web-basierte Apps
  • Verschlüsselung
  • Verschlüsseln Sie immer sensible Bundles mit den Capgo Verschlüsselungstools
  • Speichern Sie Verschlüsselungsschlüssel sicher und rotieren Sie sie regelmäßig
  • Verwenden Sie HTTPS für alle Bundle-URLs (erforderlich für mobile und Electron-Anwendungen)
  • Überwachen Sie Zugriffsprotokolle, um ungewöhnliche Downloadmuster zu erkennen
  • Konfigurieren Sie Benachrichtigungen für fehlgeschlagene Bundle-Downloads
  • Überprüfen Sie regelmäßig Ihre Speicherberechtigungen

Häufige Probleme

Gemeinsame Probleme

Bundle wird nicht heruntergeladen:

  • Stellen Sie sicher, dass die URL öffentlich zugänglich und über HTTPS (erforderlich für mobile und Electron-Anwendungen) ist
  • Überprüfen Sie die CORS-Kopfzeilen für Web-Anwendungen
  • Stellen Sie sicher, dass die Bundle-Formatierung korrekt ist

Verschlüsselungsfehler:

  • Stellen Sie sicher, dass sich die ivSessionKey mit dem verschlüsselten Bundle übereinstimmt
  • Überprüfen Sie, ob das Bundle mit der richtigen Schlüssel verschlüsselt wurde
  • Stellen Sie sicher, dass Verschlüsselung v2 für neue Bundle verwendet wird

S3-Uploadfehler:

  • Überprüfen Sie Ihre S3-Zugangsdaten und Berechtigungen
  • Überprüfen Sie die Bucket-Richtlinien und die CORS-Konfiguration
  • Stellen Sie sicher, dass die angegebene Region korrekt ist

Überprüfen Sie den Status des Bundles:

Terminal-Fenster
npx @capgo/cli@latest app debug

Überprüfen Sie die Integrität des Bundles:

Terminal-Fenster
npx @capgo/cli@latest bundle list
  • Erfahren Sie mehr über Kanäle um verschiedene Bereitstellungsumgebungen zu verwalten
  • Erkunden Sie Aktualisierungsverhalten um die Anwendung von Updates anzupassen
  • Konfigurieren Sie CI/CD-Integration um Ihre benutzerdefinierte Speicherablaufverfolgung zu automatisieren