Befehle
Eine Anleitung zur Voreinstellung mit Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Verwendung
Abschnitt mit dem Titel „Verwendung“Alle Befehle sollten in Ihrem App-Ordner mit capacitor Projekt ausgeführt werden, sobald dieses ordnungsgemäß eingeigt ist.
Initialisieren
Abschnitt mit dem Titel „Initialisieren“npx @capgo/cli@latest init [apikey]
Diese Methode ist hier, um Sie Schritt für Schritt einzuführen.
Es wird Ihre App zu Capgo hinzufügen. Es wird die code zu Ihrer App hinzufügen, um die Aktualisierung zu validieren. Ebenso wird es Ihre App erstellen. Darüber hinaus wird es Ihre App zu Capgo hochladen. Und es wird Ihnen helfen, zu überprüfen, ob die Aktualisierung funktioniert.
Anmeldung
Abschnitt mit dem Titel „Anmeldung“npx @capgo/cli login [apikey]
Diese Methode ist hier, um Sie zu erinnern, apikey für Sie.
Optional können Sie geben:
--local Dies wird Ihre App speichern API-Schlüssel in der lokalen Repo und ignoriere es im Git.
npx @capgo/cli doctor
Befehl, um zu überprüfen, ob Sie mit Capgo Paketen auf dem neuesten Stand sind.
Dieser Befehl wird auch bei der Fehlerberichterstattung nützlich sein.
Hinzufügen
Abschnitt mit dem Titel “Hinzufügen”npx @capgo/cli app add [appId]
[appId] für Ihre App-Id im Format com.test.app erklärt hier.
💡 Alle Optionen werden in Ihrer Konfiguration erraten, wenn nicht angegeben.
Optional können Sie Folgendes angeben:
--icon [/path/to/my/icon]um ein benutzerdefiniertes Icon in der Capgo Webanwendung anzuzeigen.--name [test]um einen benutzerdefinierten Namen in der Liste zu haben.--apikey [key]API-Schlüssel, um auf Ihr Konto zu verlinken.--retention [retention]Ablaufzeit des App-Bundles in Tagen, 0 durch Standard = unendlich.
Beispiel für capacitor.config.json für appId und AppName wird das Icon im Ressourcenordner erraten.
{ "appId": "ee.forgr.capacitor_go", "appName": "Capgo", "webDir": "dist"}npx @capgo/cli app set [appId]
[appId] Ist Ihre App-ID, die Formatierung wird erklärt hier.
Optional können Sie geben:
--icon [/path/to/my/icon]um eine benutzerdefinierte App-Icon-Anzeige in Capgo Web-App zu haben.--name [test]um eine benutzerdefinierte App-Name-Anzeige in der Liste zu haben.--retention [retention]Rückhaltezeit des App-Bundles 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, die Formatierung com.test.app wird erklärt hier.
Optional können Sie geben:
--apikey [key]API-Schlüssel, um auf Ihr Konto zuzugreifen.
npx @capgo/cli app delete [appId]
[appId] Ihrem App-ID im Format com.test.app erklärt hier Optional können Sie geben:.
__CAPGO_KEEP_0__-Schlüssel, um auf Ihr Konto zuzugreifen.
--apikey [key]API key to link to your account.--bundleDebug
Abschnitt mit dem Titel „Debug“
Abschnitt mit dem Titel „Debug“npx @capgo/cli app debug [appId]
[appId] Ihre App-ID in der Format com.test.app erläutert hier Optionally, Sie können geben:.
__CAPGO_KEEP_0__ Schlüssel, um auf Ihr Konto zu verlinken.
--apikey [key]API key to link to your account.--deviceEinstellung
Abschnitt mit dem Titel „Einstellung“
Bearbeiten Sie die __CAPGO_KEEP_0__-Konfiguration.npx @capgo/cli app setting [path]
Edit the Capacitor config.
[path] geben Sie appId.
Wenn Sie die automatische Aktualisierung deaktivieren möchten in der appId.
If you wish to disable auto update in the capacitor-updaterangeben plugins.CapacitorUpdater.autoUpdate mit --string off.
Sie MÜSSEN entweder --string oder --bool!
Optionen:
--string <string>- setzt die Einstellung auf einen String--bool <true | false>- setzt die Einstellung auf einen Boolean
Hochladen
Abschnitt mit dem Titel „Hochladen”npx @capgo/cli bundle upload [appId]
[appId] ist Ihre App-ID, die Formatierung wird erklärt hier.
Optionally, Sie können geben:
--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>Link auf externe URL anstatt zum Hochladen auf Capgo Cloud.--iv-session-key <key>Setzen Sie die IV und Sitzungschlüssel für die Bundle-URL extern.--s3-endpoint <s3Endpoint>URL des S3-Endpunkts. Funktioniert nicht mit Delta-Hochladen oder der externen Option.--s3-region <region>Region für Ihr 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 Ihr AWS-S3-Bucket.--s3-port <port>Port für Ihren S3-Endpunkt.--no-s3-sslSSL für S3-Upload deaktivieren.--key <key>Benutzerdefinierter Pfad für öffentlichen Signierungschlüssel (v1-System).--key-data <keyData>Öffentlicher Signierungschlüssel (v1-System).--key-v2 <key>Benutzerdefinierter Pfad für privaten Signierungschlüssel (v2-System).--key-data-v2 <keyData>Privater Signierungschlüssel (v2-System).--bundle-urlGibt die Bundle-URL in die Standardausgabe aus.--no-keyÜbergeht die Signierungsprüfung und sendet ein klares Update.--no-code-checkÜbergeht die Überprüfung, ob notifyAppReady() in der Quelle code und im Index im Root-Ordner aufgerufen wurde.--display-iv-sessionZeigt im Konsole den IV und die Sitzungsschlüssel an, die zum Verschlüsseln des Updates verwendet wurden.--bundle <bundle>Bundle-Versionennummer des zu hochladenden Bundles.--min-update-version <minUpdateVersion>Minimal erforderliche Version, um auf diese Version zu aktualisieren. Wird nur verwendet, wenn die automatische Aktualisierung auf Basis der Metadaten in der Kanalinstanz deaktiviert ist.--auto-min-update-versionSetze die Mindestaktualisierungsversion basierend auf native Paketen.--ignore-metadata-checkIgnoert die Metadaten (node_modules) Überprüfung beim Hochladen.--ignore-checksum-checkIgnoert die Prüfsummenüberprüfung beim Hochladen.--timeout <timeout>Zeitüberschreitung für den Uploadprozess in Sekunden.--deltaHochlädt Delta (Manifest)-Dateien neben dem vollständigen Bundle.--delta-onlyHochlädt nur Delta (Manifest)-Updates, das vollständige Bundle überspringt.--no-deltaDeaktiviert Delta (Manifest)-Hochladen (wird nützlich sein, wenn ein Instant-Apply-Modus aktiviert ist, aber ein vollständiges Bundle gewünscht wird).autoUpdateHochlädt das Bundle mit dem tus-Protokoll.--tusVerwendet das multipart-Protokoll, um Daten an S3 hochzuladen, veraltet, verwenden Sie TUS stattdessen.--multipartEine verschlüsselte Prüfsumme (Signatur). Wird nur verwendet, wenn ein externes Bundle hochgeladen wird.--encrypted-checksum <encryptedChecksum>Ein Pfad zu package.json. Nützlich für Monorepos.--package-json <packageJson>__CAPGO_KEEP_0__--auto-set-bundleSetze die Bundle in capacitor.config.json.--node-modules <nodeModules>Eine Liste von Pfaden zu node_modules. Nützlich für Monorepos (getrennt durch Kommata, z.B. ../../node_modules,./node_modules)
⭐️ Die externe Option hilft dabei, 2 Fälle zu lösen: Unternehmen mit Datenschutzbedenken, senden Sie das code nicht an eine dritte Partei und Apps größer als 200 MB. Mit dieser Einstellung speichert Capgo nur den Link zur Zip-Datei und sendet den Link an alle Apps.
👀 Das Capgo-Cloud-System sieht nie, was in dem Link (bei externer Option) oder im code gespeichert ist.
🔑 Sie können eine zweite Sicherheitsstufe erreichen, indem Sie Verschlüsselung verwenden, dann kann Capgo nichts sehen oder ändern, es wird “vertrauenslos”.
Beispiel für package.json für Version
{ "version": "1.0.2"}⛔ Die Version sollte größer als “0.0.0” sein.
💡 Vergessen Sie nicht, die Versionsnummer zu aktualisieren, wenn Sie eine neue senden, die Versionsnummer kann nicht überschrieben oder nach der Löschung wiederverwendet werden, aus Sicherheitsgründen.
npx @capgo/cli bundle list [appId]
[appId] Ihre App-ID im Format com.test.app erläutert hier Hier.
Sie können optional angeben:
--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 erläutert hier Hier.
Sie können optional angeben:
--apikey [key]API Schlüssel, um auf Ihr Konto zu verlinken.--bundlemit der Versionsnummer wird nur diese Version gelöscht.
Reinigung
Abschnitt mit dem Titel “Reinigung”in einer SemVer-Rangliste 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 erklärt hier.
Optionell können Sie geben:
--apikey [key]API-Schlüssel, um auf Ihr Konto zu verlinken.--bundle [majorVersion]eine Version, die Sie entfernen möchten, zuvor installierte Pakete, es wird die letzte +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 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 wird beibehalten.
Wenn Sie insgesamt 20 Versionen haben und keine Bundle-Nummer wie folgt angeben: npx @capgo/cli cleanup [appId] --keep=2 Es werden 18 Versionen entfernt, und die letzten 2 werden beibehalten.
Diese Kommando fragt nach Bestätigung, es zeigt eine Tabelle an, was beibehalten und was entfernt wird.
Verschlüsseln
Abschnitt mit dem Titel „Verschlüsseln“Warnung: Diese Kommando 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]
Dieses Kommando wird verwendet, wenn Sie einen externen Quellcode verwenden, um Ihre code zu speichern, oder für Testzwecke.
Optionally, Sie können geben:
--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels.
--key-data [privateKey] die privaten Schlüsseldaten, wenn Sie inline verwenden möchten.
Die Anweisung wird Ihren ivSessionKeyy und generiert einen verschlüsselten Zip, um ihn mit dem Upload-Befehl oder dem Entschlüsselungsbefehl zu verwenden.
Verschlüsseln V2
Abschnitt mit dem Titel “Verschlüsseln V2”npx @capgo/cli bundle encrypt [path/to/zip] [checksum]
Dieser Befehl wird verwendet, wenn Sie einen externen Quellcode zum Speichern Ihrer code verwenden 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 Dateisystems 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 zu einem “Signatur” des Pakets aufgewertet.
Optionally, Sie können geben:
--key [/path/to/my/private_key] den Pfad Ihres privaten Schlüssels.
--key-data [privateKey] die privaten 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.
Entschlüsseln
Abschnitt mit dem Titel „Entschlüsseln“npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
Optionell 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 Kommandozeilenanweisung wird hauptsächlich für Testzwecke verwendet, sie wird die Zip-Datei entschlüsseln und die Base64-entschlüsselte Sitzungsschlüssel im Konsole ausgeben.
Entschlüsseln V2
Abschnitt mit dem Titel „Entschlüsseln V2“npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
Optionell 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 Kommandozeilenanweisung wird hauptsächlich für Testzwecke verwendet, sie wird die Zip-Datei entschlüsseln und die Base64-entschlüsselte Sitzungsschlüssel im Konsole ausgeben.
--checksum [checksum] die Prüfsumme der Datei, sie wird die Prüfsumme nach der Entschlüsselung überprüfen.
npx @capgo/cli bundle zip [appId]
[appId] Ihre App-ID, die Formatierung wird erklärt hier.
Sie können optional angeben:
--path [/path/to/my/bundle]einen bestimmten Ordner hochzuladen.--bundle [1.0.0]die Versionsnummer des Bundle-Dateinamens festzulegen.--name [myapp]den Dateinamen zu überschreiben.--jsondie Informationen als JSON auszugeben.--no-code-checkdie code-Überprüfung zu ignorieren und das Bundle trotzdem zu senden.--key-v2den neuen Verschlüsselungssystem zu verwenden. Dies ist erforderlich, da das neue Verschlüsselungssystem bessere Prüfsummen verwendet, um die Integrität der Datei zu überprüfen.
Kompatibilität
Abschnitt mit dem Titel “Kompatibilität”npx @capgo/cli bundle compatibility [appId] -c [channelId]
[appId] Ihre App-ID, die Formatierung wird erklärt hier.
[channelId] Der Name Ihres neuen Kanals.
Optionell können Sie geben:
--apikey [key]API Schlüssel, um auf Ihr Konto zu verlinken.--textVerwenden Sie Text anstelle von Emojis in der Tabelle--channel [channel]Der Kanal, um die Kompatibilität zu überprüfen.--package-json <packageJson>Ein Pfad zu package.json. Nützlich für Monorepos--node-modules <nodeModules>Eine Liste von Pfaden zu node_modules. Nützlich für Monorepos (komma getrennt, z.B. ../../node_modules,./node_modules)
Hinzufügen
Abschnitt mit dem Titel “Hinzufügen”npx @capgo/cli channel add [channelId] [appId]
[channelId] __CAPGO_KEEP_0__ [appId] __CAPGO_KEEP_0__ in der Format com.test.app erklärt hier Löschen.
Abschnitt mit dem Titel “Löschen”
__CAPGO_KEEP_0__ den Namen Ihres Kanals, den Sie löschen möchtennpx @capgo/cli channel delete [channelId] [appId]
[channelId] __CAPGO_KEEP_0__ in der Format [appId] erklärt hier com.test.app Liste Liste.
npx @capgo/cli channel list [appId]
[appId] Ihre App-ID in der Formatierung com.test.app erklärt hier hier.
Optional können Sie geben:
--apikey [key]API-Schlüssel, um auf Ihr Konto zu verlinken.
Einstellung
Abschnitt mit dem Titel „Einstellung“npx @capgo/cli channel set [channelId] [appId]
[appId] Ihre App-ID, die Formatierung wird hier erklärt hier.
Optional können Sie geben:
--bundle [1.2.3]Ihre App-Bundle, die bereits an den Cloud gesendet wurden, um sie einem Kanal zuzuordnen.--latesterhalte die Bundle-Versionpackage.json:version, kann nicht mit--bundle.--state [ normal | default ]setze den Kanalzustand, kannnormaloderdefault. Ein Kanal mussdefault.--downgradeerlaubt dem Kanal, Downgrade-Versionen an Geräten zu senden.--no-downgradeerlaubt dem Kanal, Downgrade-Versionen an Geräten nicht zu senden.--upgradeerlaubt dem Kanal, Upgrade (große) Versionen an Geräten zu senden.--no-upgradeerlaubt dem Kanal, Upgrade (große) Versionen an Geräten nicht zu senden.--ioserlaubt dem Kanal, Versionen an iOS-Geräten zu senden.--no-ioserlaubt dem Kanal, Versionen an iOS-Geräten nicht zu senden.--androiderlaubt dem Kanal, Versionen an Android-Geräten zu senden.--no-androidverhindert dem Kanal, eine Version an Android-Geräten zu senden.--self-assignerlaubt Geräten, sich selbst dieser Kanal zuzuweisen.--no-self-assignverhindert Geräten, sich selbst dieser Kanal zuzuweisen.--disable-auto-update STRATEGYDeaktivieren Sie die automatische Aktualisierungsstrategie für diesen Kanal. Die möglichen Optionen sind: major, minor, metadata, none.--apikey [key]API-Schlüssel, um auf Ihr Konto zuzugreifen.
Deaktivieren Sie die Aktualisierungsstrategie
Abschnitt mit dem Titel „Deaktivieren Sie die Aktualisierungsstrategie“Es gibt einige Möglichkeiten, um Aktualisierungen für zu alte Versionen zu deaktivieren.
Capgo kann keine native code aktualisieren, daher sollte eine Aktualisierung von einer Version mit dem alten native code zu einer Version mit dem aktualisierten native code nicht möglich sein.
Es gibt ein paar Möglichkeiten, das zu erreichen.
Zuerst, die major Strategie. Sie verhindert eine Aktualisierung von 0.0.0 -> 1.0.0Die major ist die hervorgehobene Zahl (1.0.0 und 0.0.0).
Zweitens ist die minor Strategie. Sie verhindert eine Aktualisierung von 0.0.0 -> 1.1.0 oder eine Aktualisierung von 1.1.0 zu 1.2.0.
ACHTUNG Diese Strategie verhindert keine Aktualisierung von 0.1.0 -> 1.1.0
Drittens ist die patch Strategie. Sie wurde in capgo als sehr strenger Modus hinzugefügt. Sie wird nicht empfohlen, es zu verwenden, es sei denn, Sie verstehen vollständig, wie sie funktioniert.
- Um eine Aktualisierung akzeptieren zu können, müssen die folgenden Bedingungen erfüllt sein:
- Die Hauptversion ist zwischen der neuen und der alten Version gleich
- Die Minor-Version ist zwischen der neuen und der alten Version gleich
Hier ist ein Beispiel für Szenarien, in denen die Aktualisierung zugelassen oder abgelehnt wird.
- 0.0.311 -> 0.0.314 ✅
- 0.0.0 -> 0.0.314 ✅
- 0.0.316 -> 0.0.314 ❌
- 0.1.312 -> 0.0.314 ❌
- 1.0.312 -> 0.0.314 ❌
Zuletzt das komplexeste Szenario. Das metadata Szenario.
Zuerst müssen Sie wissen, dass die Aktualisierungen zunächst nachdem Sie es aktiviert haben, fehlschlagen werden, da der Kanal die erforderlichen Metadaten nicht enthält. WIRD Wenn der Kanal Metadaten fehlt, sehen Sie eine Nachricht wie diese:
Kann keine Metadaten finden
Zuerst müssen Sie herausfinden, welcher Kanal fehlschlägt. Sie können das tun, indem Sie die
Spalte misconfigured Falsig konfigurierte Tabelle
Dann gehen Sie zum fehlenden Kanal und klicken Sie auf Bundle numberDies sollte Sie zur Bundle-Seite bringen.
Locate failing channel Minimal update version Einmal dort füllen Sie das Feld. Dies sollte ein.
semver
Now, you likely do not want to set this data manually every time you update. Fortunately, the CLI will prevent you from sending an update without this metadata
__CAPGO_KEEP_0__ fehlerhaft ohne Metadaten metadata Um ein Bundle korrekt hochzuladen, wenn Sie die Option verwenden, müssen Sie den --min-update-version mit einer gültigen semver. Etwas wie das:
Der --min-update-version ist nicht der EINZIGE Weg zur Kompatibilität.
Es gibt auch den --auto-min-update-versionHier ist, wie es funktioniert.
Zuerst überprüft es die aktuell hochgeladene Version im Kanal. Es überprüft die Kompatibilität genauso wie der bundle compatibility Befehl würde.
Zweitens, wenn die neue Version 100% kompatibel ist, verwendet es die min_update_version aus der letzten Version im Kanal.
Wenn nicht, dann setzt es die min_update_version auf die Bundle-Nummer der neu hochgeladenen Version.
Bei dieser Option erhält man immer eine Information, was die
ist. Es wird etwas wie das aussehen: min_update_version Mindestupdateversion
Wenn die neue Version nicht kompatibel ist, sollte es so aussehen
End-to-End-Verschlüsselung (Vertrauenswürdig)
Abschnitt mit dem Titel “End-to-End-Verschlüsselung (Vertrauenswürdig)”Capgo unterstützt die End-to-End-Verschlüsselung, das 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 eine RSA-Schlüsselpaar erzeugen, Sie können den folgenden Befehl verwenden, um es zu erzeugen.
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.
Verschlüsselungsschema
Erstelle einen Schlüssel für deine App
Abschnitt mit dem Titel “Erstelle einen Schlüssel für deine App”npx @capgo/cli key create
Optional kannst du folgende Angaben machen: --force Um die bestehende 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
Schlüssel in der App-Konfiguration speichern
Abschnitt mit dem Titel „Schlüssel in der App-Konfiguration speichern”npx @capgo/cli key save
Optional können Sie Folgendes angeben:
--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.
CI-Integration
Abschnitt mit dem Titel „CI-Integration”Um Ihre Arbeit zu automatisieren, empfehle ich Ihnen, die GitHub-Aktion mit der Aufgabe zu beauftragen, auf unseren Server zu pushen
Unsere Demo-App
Abschnitt mit dem Titel “Unsere Demo-Anwendung”Vergessen Sie nicht, die CI-Umgebungsvariable mit Ihrem API-Schlüssel zu konfigurieren