Zum Inhalt springen

Commands

Alle Befehle sollten in Ihrem App-Ordner ausgeführt werden, mit capacitor Projekt angemessen eingebrannt.

npx @capgo/cli@latest init [apikey]

Diese Methode ist hier, um Sie Schritt für Schritt einzuführen.

Es wird Ihr App zu Capgo hinzufügen. Es wird code zu Ihrer App hinzufügen, um die Aktualisierung zu validieren. Ebenso wird es Ihre App erstellen. Darüber hinaus wird es Ihre App auf Capgo hochladen. Und es wird Ihnen helfen, zu überprüfen, ob die Aktualisierung funktioniert.

npx @capgo/cli login [apikey]

Diese Methode ist hier, um die apikey für Sie zu merken.

Optional können Sie geben:

--local Dies wird Ihren apikey in der lokalen Repo speichern und es git ignorieren.

npx @capgo/cli doctor

Befehl zur Überprüfung, ob Sie mit den Capgo Paketen auf dem neuesten Stand sind.

Dieser Befehl wird auch bei der Fehlerberichterstattung nützlich sein.

npx @capgo/cli app add [appId]

[appId] Ihre App-ID im Format com.test.app erklärt hier 💡 Alle Optionen werden in Ihrer Konfiguration automatisch ermittelt, wenn nicht angegeben..

Optional können Sie Folgendes angeben:

um eine benutzerdefinierte App-Ikone in der __CAPGO_KEEP_0__ Web-Anwendung anzuzeigen.

  • --icon [/path/to/my/icon] to have a custom icon display in Capgo web app.
  • --name [test] die __CAPGO_KEEP_0__-Schlüssel, um auf Ihr Konto zu verlinken.
  • --apikey [key] API key to link to your account.
  • --retention [retention] Beispiel von

Beispiel von capacitor.config.json für appId und AppName wird der Icon im Ressourcenordner erraten

{
"appId": "ee.forgr.capacitor_go",
"appName": "Capgo",
"webDir": "dist"
}

npx @capgo/cli app set [appId]

[appId] Ihre App-ID, die Formatierung wird erklärt hier.

Sie können optional folgendes angeben:

  • --icon [/path/to/my/icon] um einen benutzerdefinierten Icon in der Capgo Webanwendung anzuzeigen.
  • --name [test] um einen benutzerdefinierten Namen in der Liste zu haben.
  • --retention [retention] Rückhaltdauer der App-Bundle in Tagen, 0 durch Standard = unendlich.
  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.

npx @capgo/cli app list [appId]

[appId] Ihre App-ID in der Format com.test.app erläutert hier hier.

Optional können Sie geben:

  • --apikey [key] API Schlüssel um auf Ihr Konto zu verlinken.

npx @capgo/cli app delete [appId]

[appId] Ihre App-ID in der Format com.test.app erläutert hier hier.

Optional können Sie geben:

  • --apikey [key] API key to link to your account.
  • --bundle mit der Versionsnummer wird nur diese Version gelöscht.

npx @capgo/cli app debug [appId]

[appId] Ihre App-ID in der Format com.test.app erläutert hier.

Optional können Sie geben:

  • --apikey [key] API key to link to your account.
  • --device mit dem spezifischen Gerät, das Sie debuggen möchten

npx @capgo/cli app setting [path]

Die Capacitor Konfiguration bearbeiten.

[path] - Pfad der Einstellung, die Sie ändern möchten. Zum Beispiel, um die appId, bereitstellen appId. Wenn Sie die automatische Aktualisierung in der capacitor-updater, bereitstellen plugins.CapacitorUpdater.autoUpdate mit --string off.

Sie MÜSSEN entweder --string oder --bool!

Optionen:

  • --string <string> - legt die Einstellung auf einen String fest
  • --bool <true | false> - legt die Einstellung auf einen boolean fest

npx @capgo/cli bundle upload [appId]

[appId] Ihre App-ID ist hier, die Formatierung wird erklärt hier.

Sie können optional angeben:

  • --apikey <apikey> API-Schlüssel, um auf Ihr Konto zu verlinken.
  • --path <path> Pfad des Ordners zum Hochladen.
  • --channel <channel> Kanal, um zu verlinken.
  • --external <url> Stattdessen mit Capgo Cloud verlinken.
  • --iv-session-key <key> IV- und Sitzungsschlüssel für die Bundle-URL extern setzen.
  • --s3-endpoint <s3Endpoint> URL des S3-Endpunkts. Funktioniert nicht mit Delta-Hochladen oder der externen Option.
  • --s3-region <region> Region für Ihren S3-Bucket.
  • --s3-apikey <apikey> API-Schlüssel für Ihren S3-Endpunkt.
  • --s3-apisecret <apisecret> API-Geheimnis für Ihren S3-Endpunkt.
  • --s3-bucket-name <bucketName> Name für Ihren AWS S3-Bucket.
  • --s3-port <port> Port für Ihren S3-Endpunkt.
  • --no-s3-ssl SSL für S3-Upload deaktivieren.
  • --key <key> Benutzerdefinierte Pfad für öffentliche Signierungskey (v1-System).
  • --key-data <keyData> Öffentlicher Signierungskey (v1-System).
  • --key-v2 <key> Benutzerdefinierte Pfad für privaten Signierungskey (v2-System).
  • --key-data-v2 <keyData> Privater Signierungskey (v2-System).
  • --bundle-url Bundle-URL in stdout ausgibt.
  • --no-key Signierungskey ignorieren und klarer Update senden.
  • --no-code-check Ignoriere die Überprüfung, ob notifyAppReady() in der Quelle code und der Index im Root-Ordner vorhanden ist.
  • --display-iv-session Zeige im Konsole die IV- und Sitzungsschlüssel, die zum Verschlüsseln der Aktualisierung verwendet werden.
  • --bundle <bundle> Version des Bundles zum Hochladen.
  • --min-update-version <minUpdateVersion> Minimal erforderliche Version zur Aktualisierung auf diese Version. Wird nur verwendet, wenn die automatische Aktualisierung auf Metadaten in Kanal gesetzt ist.
  • --auto-min-update-version Setze die Mindestaktualisierungsversion basierend auf native Paketen.
  • --ignore-metadata-check Ignores die Metadaten (node_modules) Überprüfung beim Hochladen.
  • --ignore-checksum-check Ignores die Prüfsummenüberprüfung beim Hochladen.
  • --timeout <timeout> Zeitüberschreitung für den Upload-Prozess in Sekunden.
  • --delta Hochlädt Delta (Manifest)-Dateien neben dem vollständigen Bundle.
  • --delta-only Hochlädt nur Delta (Manifest)-Updates, überspringt das vollständige Bundle.
  • --no-delta Deaktiviert Delta (Manifest)-Hochladen (wird nützlich sein, wenn ein Instant-Apply-Modus aktiviert ist, aber ein vollständiges Bundle gewünscht wird). autoUpdate Deaktiviert Delta (Manifest)-Hochladen (wird nützlich sein, wenn ein Instant-Apply-Modus aktiviert ist, aber ein vollständiges Bundle gewünscht wird).
  • --tus Das Bundle hochladen, indem Sie den tus-Protokoll verwenden.
  • --multipart Verwendet das multipart-Protokoll, um Daten an S3 hochzuladen. Veraltet, verwenden Sie stattdessen TUS.
  • --encrypted-checksum <encryptedChecksum> Eine verschlüsselte Prüfsumme (Signatur). Nur bei externem Bundle hochgeladen.
  • --package-json <packageJson> Eine Pfade zu package.json. Nützlich für Monorepos.
  • --auto-set-bundle Die Bundle in capacitor.config.json setzen.
  • --node-modules <nodeModules> Eine Liste von Pfaden zu node_modules. Nützlich für Monorepos (getrennt durch Komma, z.B. ../../node_modules,./node_modules).

⭐️ Die externe Option hilft dabei, 2 Fälle zu entsperren: Unternehmen mit Datenschutzbedenken, senden Sie code nicht an einen Dritten und Apps größer als 200 MB. Mit dieser Einstellung speichert Capgo nur den Link zum Zip und sendet den Link an alle Apps.

👀 Capgo-Cloud sieht nie, was in dem Link (bei externer Option) oder in code gespeichert ist.

🔑 Sie können eine zweite Sicherheitsstufe durch Verschlüsselung erreichen, dann kann Capgo nichts sehen oder ändern, es wird “vertrauenslos”.

Beispiel für package.json Version

{
"version": "1.0.2"
}

⛔ Die Version sollte größer als „0.0.0“ sein.

💡 Vergessen Sie nicht, die Versionsnummer bei jeder Übermittlung zu aktualisieren, da die Versionsnummer nicht überschrieben oder nach der Löschung wiederverwendet werden kann, aus Sicherheitsgründen.

npx @capgo/cli bundle list [appId]

[appId] Ihre App-ID im Format com.test.app wird hier erläutert.

Optionell können Sie geben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.

npx @capgo/cli bundle delete [appId]

[appId] Ihre App-ID im Format com.test.app wird hier erklärt hier.

Optionell können Sie folgendes angeben:

  • --apikey [key] API-Schlüssel zum Verknüpfen Ihres Kontos.
  • --bundle mit der Versionsnummer wird nur diese Version gelöscht.

in einer SemVer-Rangfolge für eine Hauptversion zu Cloud

npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]

[appId] Ihre App-ID im Format com.test.app wird hier erklärt hier.

Optionell können Sie folgendes angeben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.
  • --bundle [majorVersion] eine Version, die Sie entfernen möchten, um vorherige Pakete, wird der letzte behalten + numberToKeep.
  • --keep [numberToKeep] die Anzahl der Pakete, die Sie behalten möchten (Standard 4).

Beispiel: Wenn Sie 10 Versionen von 10.0.1 bis 10.0.11 haben und Sie es verwenden npx @capgo/cli cleanup [appId] --bundle=10.0.0 es wird 10.0.1 bis 10.0.6 entfernen. 10.0.7 bis 10.0.11 werden behalten.

Wenn Sie insgesamt 20 Versionen haben und Sie keine Paketnummer wie folgt angeben: npx @capgo/cli cleanup [appId] --keep=2 Es wird 18 Versionen entfernen und die letzten 2 behalten.

Diese Anweisung wird nach Bestätigung gefragt, es zeigt eine Tabelle an, was es behalten und entfernen wird.

Warnung: Diese Anweisung ist veraltet und wird in der nächsten großen Version entfernt. Bitte verwenden Sie das neue Verschlüsselungssystem. npx @capgo/cli bundle encrypt [path/to/zip]

Diese Anweisung wird verwendet, wenn Sie einen externen Quellcode verwenden, um Ihre code zu speichern oder für Testzwecke.

Optional können Sie geben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] die private Schlüsseldaten, wenn Sie inline verwenden möchten. Die Anweisung wird Ihre ivSessionKeyy und generiert ein verschlüsseltes Zip, um es mit dem Upload-Befehl oder dem Entschlüsselungsbefehl zu verwenden.

npx @capgo/cli bundle encrypt [path/to/zip] [checksum]

Diese Anweisung wird verwendet, wenn Sie einen externen Quellcode verwenden, um Ihre code zu speichern oder für Testzwecke. Der Prüfsummenwert ist der sha256-Wert des Pakets (erzeugt durch —key-v2), er wird verwendet, um die Integrität des Dateis nach der Entschlüsselung zu überprüfen. Er wird mit dem privaten Schlüssel verschlüsselt und zusammen mit dem Paket gesendet. Bei der Verschlüsselung V2 wird der Prüfsummenwert auf ein “Zeichen” des Pakets aufgewertet.

Optional können Sie geben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] die private Schlüsseldaten, wenn Sie inline verwenden möchten. --json um Informationen als JSON auszugeben. Die Anweisung wird Ihren ivSessionKeyy und generiert einen verschlüsselten Zip, um ihn mit dem Upload-Befehl oder dem Entschlüsselungsbefehl zu verwenden.

npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]

Optional können Sie geben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels.

--key-data [privateKey] die private Schlüsseldaten, wenn Sie inline verwenden möchten. Diese Anweisung wird hauptsächlich für Testzwecke verwendet, sie wird den Zip entschlüsseln und die Base64-entschlüsselte Sitzungsschlüssel in der Konsole ausgeben.

npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]

Optional können Sie geben:

--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels. --key-data [privateKey] Die Daten Ihres privaten Schlüssels, wenn Sie inline verwenden möchten. Diese Anweisung wird hauptsächlich für Testzwecke verwendet, sie wird den Zip entschlüsseln und die Base64-entschlüsselte Sitzungsschlüssel im Konsole ausgeben. --checksum [checksum] Die Prüfsumme des Dateis, sie wird die Prüfsumme nach der Entschlüsselung überprüfen.

npx @capgo/cli bundle zip [appId]

[appId] Ihr App-ID ist, die Format wird erklärt hier.

Optionell können Sie geben:

  • --path [/path/to/my/bundle] um ein bestimmtes Verzeichnis hochzuladen.
  • --bundle [1.0.0] um die Versionsnummer des Bundles im Dateinamen zu setzen.
  • --name [myapp] um den Dateinamen zu überschreiben.
  • --json um Informationen als JSON auszugeben.
  • --no-code-check um die code-Überprüfung zu ignorieren und den Bundle trotzdem zu senden.
  • --key-v2 um das neue Verschlüsselungssystem zu verwenden. Dies ist erforderlich, da das neue Verschlüsselungssystem bessere Prüfsummen verwendet, um die Integrität des Dateisystems zu überprüfen.

npx @capgo/cli bundle compatibility [appId] -c [channelName]

[appId] Ihre App-ID, die Formatierung wird erklärt hier. [channelName] der Name des Kanals, den Sie überprüfen möchten.

Optional können Sie geben:

  • --apikey [key] API-Schlüssel, um auf Ihr Konto zuzugreifen.
  • --text Text anstelle von Emojis in der Tabelle verwenden
  • --channel [channel] den Kanal, mit dem die Kompatibilität überprüft werden soll.
  • --package-json <packageJson> Ein Pfad zu package.json. Nützlich für Monorepos
  • --node-modules <nodeModules> Auflistung der Pfade zu node_modules. Nützlich für Monorepos (getrennt durch Kommas z.B.: ../../node_modules,./node_modules)

npx @capgo/cli channel add [channelName] [appId]

[channelName] den Namen Ihres neuen Kanals, wie z.B. production oder beta. [appId] ihre App-ID im Format com.test.app erklärt auf dieser Seite.

npx @capgo/cli channel delete [channelName] [appId]

[channelName] der Namen des Kanals, den Sie löschen möchten. [appId] Ihre App-ID im Format com.test.app wird hier erklärt. hier.

npx @capgo/cli channel list [appId]

[appId] Ihre App-ID im Format com.test.app wird hier erklärt. hier.

Optional können Sie angeben:

  • --apikey [key] API Schlüssel, um auf Ihr Konto zu verlinken.

npx @capgo/cli channel set [channelName] [appId]

[appId] Ihre App-ID, die Formatierung wird erklärt hier. [channelName] den Namen des Kanals, den Sie konfigurieren möchten, wie z.B. production oder beta.

Optionell können Sie geben:

  • --bundle [1.2.3] Ihre App-Bundle, das bereits an den Cloud gesendet wurde, um es mit einem Kanal zu verbinden.
  • --latest die Bundle-Version von package.json:versionkann nicht mit --bundle.
  • --state [ normal | default ] den Kanalstatus setzen, kann normal oder default. Ein Kanal muss default.
  • --downgrade erlaubt dem Kanal, eine Downgrade-Version an Geräte zu senden.
  • --no-downgrade verhindert dem Kanal, eine Downgrade-Version an Geräte zu senden.
  • --upgrade erlaubt dem Kanal, eine Upgrade-(Haupt)-Version an Geräte zu senden.
  • --no-upgrade verhindert dem Kanal, eine Upgrade-(Haupt)-Version an Geräte zu senden.
  • --ios erlaubt dem Kanal, eine Version an iOS-Geräte zu senden.
  • --no-ios verhindert dem Kanal, eine Version an iOS-Geräte zu senden.
  • --android erlaubt dem Kanal, eine Version an Android-Geräte zu senden.
  • --no-android verhindert dem Kanal, eine Version an Android-Geräte zu senden.
  • --self-assign erlaubt Geräten, sich selbst dieser Kanal zuzuweisen.
  • --no-self-assign verhindert Geräten, sich selbst dieser Kanal zuzuweisen.
  • --disable-auto-update STRATEGY Deaktiviert die automatische Aktualisierungsstrategie für diesen Kanal. Die möglichen Optionen sind: Haupt, Minor, Patch, Metadaten, None.
  • --apikey [key] API-Schlüssel, um auf Ihr Konto zuzugreifen.

Updates-Strategie deaktivieren

Abschnitt: Updates-Strategie deaktivieren

Es gibt einige Möglichkeiten, Updates für zu alte Versionen zu deaktivieren.
Capgo kann keine native code aktualisieren, sodass ein Update von einer Version mit dem alten native code zu einer Version mit dem aktualisierten native code nicht möglich sein sollte. Es gibt ein paar Möglichkeiten, das zu erreichen.

Zuerst ist die major Strategie. Sie verhindert ein Update von der native Basislinie 0.0.0 -> Zielbundle 1.0.0. Die Hauptversion ist die hervorgehobene Zahl (1.0.0 und 0.0.0).
Zweitens ist die minor Strategie. Sie verhindert ein Update, wenn das Zielbundle eine andere Haupt- oder Minor-Version als die Geräte-native Basislinie hat, wie z.B. 0.0.0 -> 1.1.0 oder 1.1.0 -> 1.2.0.

Drittens, die Strategie. Sie wurde in __CAPGO_KEEP_0__ als sehr strenger Modus hinzugefügt. Es wird nicht empfohlen, sie zu verwenden, es sei denn, Sie verstehen vollständig, wie sie funktioniert. patch strategy. It was added into capgo as a very strict mode. It’s not recommended to be used unless you fully understand how it works. In order for it to accept an update, the following conditions must be met:

  • Der Hauptversion ist zwischen dem Zielbundle und dem version_build
  • Die Minorversion ist zwischen dem Zielbundle und dem version_build
  • Die Patchversion ist zwischen dem Zielbundle und dem version_build
  • Nur die Versionssuffix können sich unterscheiden, wie z.B. Prerelease (-beta.2) oder Build-Metadaten (+build.2)

Hier sind einige Beispiele, in welchen Szenarien das Update zugelassen oder abgelehnt wird:

  • 1.0.0-beta.1 -> 1.0.0-beta.2 zugelassen
  • 1.0.0+build.1 -> 1.0.0+build.2 zugelassen
  • 1.0.0 -> 1.0.1 abgelehnt
  • 1.0.0 -> 1.1.0 abgelehnt
  • 1.0.0 -> 2.0.0 blockiert

Die Strategie-Vergleichung verwendet die native Basis, die als version_build, nicht die aktuelle heruntergeladene Pakete, die als version_name.

Zuletzt die am schwierigsten Strategie. Die metadata Strategie.
Zuerst müssen Sie wissen, dass die Aktualisierungen WERDEN fehlschlagen, da der Kanal die erforderlichen Metadaten fehlt.
Wenn der Kanal Metadaten fehlt, sehen Sie eine Nachricht wie diese:

Kann keine Metadaten finden

Wenn Sie etwas wie das sehen, wissen Sie, dass Sie zum aktuellen Bundle für den fehlenden Kanal gehen und die Metadaten setzen müssen.
Zuerst müssen Sie herausfinden, welcher Kanal fehlschlägt. Sie können das tun, indem Sie sich das Bundle für den fehlenden Kanal ansehen und die Metadaten einrichten. misconfigured Spalte

Falsch konfigurierte Tabelle

Dann gehen Sie zum fehlenden Kanal und klicken Sie auf Bundle numberDies sollte Sie zur Bundle-Seite bringen.

Fehlender Kanal finden

Dort füllen Sie das Minimal update version Feld. Dies sollte eine semver.
Wenn der Wert, den Sie übergeben, keine semver ist, erhalten Sie einen Fehler, aber wenn alles korrekt verläuft, sollten Sie etwas wie das sehen:

Mindestversion setzen

Jetzt werden Sie wahrscheinlich nicht jede Zeit diese Daten manuell eintragen wollen. Glücklicherweise wird der CLI verhindern, dass Sie eine Aktualisierung ohne diese Metadaten senden.

CLI fehlerhaft ohne Metadaten

To um eine Bundle korrekt hochzuladen, wenn Sie die Option verwenden, müssen Sie den metadata mit dem --min-update-version mit einem gültigen semver angeben. Etwas wie das: __CAPGO_KEEP_0__-Upload mit Metadaten

CLI upload with metadata

ist NICHT die EINZIGE Möglichkeit, Kompatibilität zu gewährleisten. Es gibt auch die --min-update-version . Hier ist, wie es funktioniert. --auto-min-update-versionZuerst überprüft es die aktuell hochgeladene Version im Kanal. Es überprüft die Kompatibilität genauso wie der

Befehl. bundle compatibility Zweitens, wenn die neue Version 100% kompatibel ist, übernimmt es die min_update_version aus der letzten Version im Kanal. Wenn nicht, dann setzt es die min_update_version zur Bundle-Nummer der neu hochgeladenen Version.

Sie erhalten immer eine Information, was ist die min_update_version Wenn Sie diese Option verwenden, wird es so aussehen:

Mindestupdateversion

Wenn die neue Version nicht kompatibel ist, sollte es so aussehen:

Mindestupdateversion nicht kompatibel

Capgo unterstützt die End-to-End-Verschlüsselung, was bedeutet, dass Ihr Bundle (code) vor dem Senden an den Cloud-Server verschlüsselt wird und auf dem Gerät entschlüsselt wird. Dazu müssen Sie ein RSA-Schlüsselpaar generieren, Sie können den folgenden Befehl verwenden, um es zu generieren.

Das Verschlüsselungssystem ist eine Combination aus RSA und AES, der RSA-Schlüssel wird verwendet, um den AES-Schlüssel zu verschlüsseln, und der AES-Schlüssel wird verwendet, um das Datei zu verschlüsseln.

Siehe unten für weitere Informationen zum Verschlüsselungssystem.

Wie funktioniert das Kryptosystem

Verschlüsselungsschema

npx @capgo/cli key create

Optional können Sie geben: --force um den bestehenden Schlüssel zu überschreiben. Diese Anweisung erstellt für Sie ein Schlüsselpaar in Ihrer App und fragt Sie nach, wo Sie den privaten Schlüssel sicher speichern möchten. Es wird empfohlen, den privaten Schlüssel nicht in der Git-Datenbank zu speichern und ihn nicht mit anderen zu teilen.

Nach Ihrer lokalen Testphase entfernen Sie den Schlüssel aus der Konfigurationsdatei und fügen Sie ihn im CI-Schritt ein mit key save

npx @capgo/cli key save

Optional können Sie geben:

--key [/path/to/my/public_key] den Pfad Ihres öffentlichen Schlüssel-Dateis.

--key-data [publicKey] die öffentliche Schlüssel-Daten, wenn Sie inline verwenden möchten. Diese Anweisung ist nützlich, wenn Sie der Empfehlung gefolgt sind und den Schlüssel nicht in der App-Konfiguration gespeichert haben.

Um Ihre Arbeit zu automatisieren, empfehle ich Ihnen, dass die GitHub-Aktion die Arbeit des Hochladens auf unseren Server übernimmt

GitHub-Aktion-Tutorial

GitHub - Cap-go/demo-app

Vergessen Sie nicht, die CI-Umgebungsvariable mit Ihrem API-Schlüssel zu konfigurieren

Wenn Sie Befehle zur Planung Ihres Dashboards und API-Operationen, verbinden Sie es mit API Übersicht für die Implementierungsdetails in API Übersicht, Einführung für die Implementierungsdetails in Einführung, API Schlüssel für die Implementierungsdetails in API Schlüssel, Geräte für die Implementierungsdetails in Geräte, und Pakete für die Implementierungsdetails in Pakete.