Comandi
Copia un prompt di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
Utilizzo
Sezione intitolata “Utilizzo”Tutti i comandi devono essere eseguiti nella cartella del tuo progetto con capacitor acceso correttamente.
Inizializzazione
Sezione intitolata “Inizializzazione”npx @capgo/cli@latest init [apikey]
Questo metodo è qui per guidarti passo dopo passo.
Aggiungerà il tuo progetto a Capgo. Aggiungerà code al tuo progetto per validare l'aggiornamento. Inoltre, costruirà il tuo progetto. Inoltre, caricherà il tuo progetto su Capgo. E aiuterà a verificare se l'aggiornamento funziona.
Accesso
Sezione intitolata “Accesso”npx @capgo/cli login [apikey]
Questo metodo è qui per ricordarti apikey per te.
Opzionalmente puoi dare:
--local Questo memorizzerà il tuo apikey nel repository locale e lo ignorerà in Git.
Dottore
Sezione intitolata “Dottore”npx @capgo/cli doctor
Comando per verificare se sei aggiornato con i pacchetti Capgo.
Questo comando sarà anche utile per la segnalazione di bug.
Applicazione
Sezione intitolata “Applicazione”Aggiungi
Sezione intitolata “Aggiungi”npx @capgo/cli app add [appId]
[appId] inserisci il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
💡 Tutte le opzioni saranno dedotte dalla tua configurazione se non fornite.
Facoltativamente, puoi fornire:
--icon [/path/to/my/icon]to have a custom icon display in Capgo web app.--name [test]per avere un nome personalizzato nella lista.--apikey [key]API chiave per collegarsi al proprio account.--retention [retention]periodo di conservazione del bundle dell'applicazione in giorni, 0 di default = infinito.
Esempio di capacitor.config.json per appId e AppName, l'icona viene riconosciuta nel folder dei risorse
{ "appId": "ee.forgr.capacitor_go", "appName": "Capgo", "webDir": "dist"}Imposta
Sezione intitolata “Imposta”npx @capgo/cli app set [appId]
[appId] è il tuo ID dell'applicazione, il formato viene spiegato qui.
Facoltativamente, puoi dare:
--icon [/path/to/my/icon]per avere un'icona personalizzata visualizzata nell'applicazione web Capgo.--name [test]per avere un nome personalizzato nella lista.--retention [retention]periodo di conservazione del bundle dell'applicazione in giorni, 0 di default = infinito.--apikey [key]API chiave per collegarsi al proprio account.
npx @capgo/cli app list [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegarsi al proprio account.
Cancella
Sezione intitolata “Cancella”npx @capgo/cli app delete [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]la chiave API per collegare il tuo account.--bundlecon il numero di versione eliminerà solo questa versione.
npx @capgo/cli app debug [appId]
[appId] il tuo ID app nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]la chiave API per collegare il tuo account.--deviceEsegui il debug con il dispositivo specifico che desideri
Impostazioni
Sottosezione intitolata “Impostazioni”npx @capgo/cli app setting [path]
Modifica la configurazione Capacitor.
[path] - percorso della impostazione che desideri modificare. Ad esempio, per modificare il appId, fornisci appId.
Se desideri disabilitare l'aggiornamento automatico in capacitor-updater fornisci plugins.CapacitorUpdater.autoUpdate
È necessario fornire uno dei seguenti --string o --bool!
Opzioni:
--string <string>- imposta l'impostazione a una stringa--bool <true | false>- imposta la impostazione su un booleano
Pacchetto
Sezione intitolata “Pacchetto”npx @capgo/cli bundle upload [appId]
[appId] è il tuo ID app, la formattazione è spiegata qui.
Opcionalmente, puoi fornire:
--apikey <apikey>API chiave per collegarsi al tuo account.--path <path>Percorso del folder da caricare.--channel <channel>Canale per collegarsi.--external <url>Collega a un URL esterno al posto di caricare su Capgo Cloud.--iv-session-key <key>Imposta l'IV e la chiave di sessione per l'URL del pacchetto esterno.--s3-endpoint <s3Endpoint>URL del punto di fine endpoint S3. Non funziona con le opzioni di upload delta o esterno.--s3-region <region>Regione per il tuo bucket S3.--s3-apikey <apikey>API chiave per il tuo punto di fine endpoint S3.--s3-apisecret <apisecret>API segreto per il tuo punto di fine endpoint S3.--s3-bucket-name <bucketName>Nome per il tuo bucket S3 AWS.--s3-port <port>Porta per il tuo punto di fine endpoint S3.--no-s3-sslDisabilita SSL per l'upload S3.--key <key>Percorso personalizzato per la chiave di firma pubblica (sistema v1).--key-data <keyData>Chiave di firma pubblica (sistema v1).--key-v2 <key>Percorso personalizzato per la chiave di firma privata (sistema v2).--key-data-v2 <keyData>Chiave di firma privata (sistema v2).--bundle-urlStampa l'URL del bundle nella console.--no-keyIgnora la chiave di firma e invia l'aggiornamento in chiaro.--no-code-checkIgnora la verifica se notifyAppReady() è chiamato nella sorgente code e l'indice presente nella cartella radice.--display-iv-sessionMostra nella console la chiave IV e di sessione utilizzate per cifrare l'aggiornamento.--bundle <bundle>Numero di versione del bundle da caricare.--min-update-version <minUpdateVersion>Numero di versione minima richiesto per aggiornarsi a questa versione. Utilizzato solo se l'aggiornamento automatico è disabilitato nel canale.--auto-min-update-versionImposta la versione minima di aggiornamento basata sui pacchetti nativi.--ignore-metadata-checkIgnora la verifica dei metadati (node_modules) durante l'upload.--ignore-checksum-checkIgnora la verifica del checksum durante l'upload.--timeout <timeout>Timeout per il processo di upload in secondi.--deltaCarica i file Delta (manifest) insieme al bundle completo.--delta-onlyCarica solo gli aggiornamenti Delta (manifest), saltando il bundle completo.--no-deltaDisabilita le pubblicazioni (manifesto) Delta (utile sedirectUpdateè abilitato ma desideri un bundle completo).--tusCarica il bundle utilizzando il protocollo tus.--multipartUtilizza il protocollo multipart per caricare i dati su S3, Obsoleto, utilizza TUS invece.--encrypted-checksum <encryptedChecksum>Un calcolo di checksum (firma) crittografato. Utilizzato solo quando si caricano un bundle esterno.--package-json <packageJson>Un percorso per package.json. Utile per i monorepos.--auto-set-bundleImposta il bundle in capacitor.config.json.--node-modules <nodeModules>Una lista di percorsi per node_modules. Utile per i monorepos (separati da virgole, ad esempio: ../../node_modules,./node_modules)
⭐️ L'opzione esterna aiuta a sbloccare 2 casi: aziende con preoccupazioni sulla privacy, non inviare il code a un terzo partito e applicazioni più grandi di 200 MB. Con questa impostazione, Capgo memorizza solo il collegamento al file zip e invia il collegamento a tutte le applicazioni.
👀 Il cloud di Capgo non guarda mai cosa contiene il collegamento (per l'opzione esterna), o in code quando memorizzato.
🔑 Puoi aggiungere un secondo strato di sicurezza utilizzando la crittografia, quindi Capgo non potrà più guardare o modificare nulla, diventa “inaffidabile”.
Esempio di package.json per versione
{ "version": "1.0.2"}⛔ La versione deve essere maggiore di “0.0.0”.
💡 Non dimenticare di aggiornare il numero di versione ogni volta che lo invii, il numero di versione non può essere sovrascritto o riutilizzato dopo la cancellazione per motivi di sicurezza.
npx @capgo/cli bundle list [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]API chiave per collegarsi al tuo account.
Cancella
Sezione intitolata “Elimina”npx @capgo/cli bundle delete [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegare il tuo account.--bundlecon il numero di versione eliminerà solo questa versione.
Pulizia
Sezione intitolata “Pulizia”in un intervallo SemVer per una versione maggiore su Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato Ecco.
Facoltativamente, puoi fornire:
--apikey [key]la chiave API per collegarsi al tuo account.--bundle [majorVersion]la versione che desideri rimuovere le precedenti versioni per, terrà l'ultima +numberToKeep.--keep [numberToKeep]il numero di pacchetti che desideri tenere (di default 4).
Esempio: Se hai 10 versioni da 10.0.1 a 10.0.11, e lo utilizzi npx @capgo/cli cleanup [appId] --bundle=10.0.0 rimuoverà 10.0.1 a 10.0.6. 10.0.7 fino a 10.0.11 verranno tenuti.
Se hai 20 versioni in totale, e non fornisci un numero di pacchetti come questo: npx @capgo/cli cleanup [appId] --keep=2 Rimuoverà 18 versioni, e terrà le ultime 2.
Questo comando chiederà conferma, mostra una tabella di cosa terrà e rimuoverà.
Crittografare
Sezione intitolata “Crittografare”Attenzione: Questo comando è deprecato e verrà rimosso nella prossima versione maggiore. Si prega di utilizzare il nuovo sistema di crittografia.
npx @capgo/cli bundle encrypt [path/to/zip]
Questo comando viene utilizzato quando si utilizza una fonte esterna per memorizzare il proprio code o per scopi di test.
Facoltativamente, puoi fornire:
--key [/path/to/my/private_key] la percorso della tua chiave privata.
--key-data [privateKey] i dati della chiave privata, se desideri utilizzare inline. ivSessionKeyIl comando stampa il tuo
y e genera un file zip crittografato, da utilizzare con il comando di upload o il comando di decrittografia.
Crittografare V2 (nuova versione del comando di crittografia).npx @capgo/cli bundle encrypt [path/to/zip] [checksum]
This command is used when you use an external source to store your code or for testing purposes.
La checksum è il sha256 del bundle (generato da —key-v2), viene utilizzato per verificare l'integrità del file dopo la decrittazione.
--key [/path/to/my/private_key] Verrà crittografato con la chiave privata e inviato insieme al bundle.
--key-data [privateKey] In crittografia v2 la checksum viene aggiornata per diventare una “firma” del bundle.
--json Facoltativamente, puoi fornire: ivSessionKeyla percorso della tua chiave privata.
i dati della chiave privata, se desideri utilizzare inline.
per stampare le informazioni in formato JSON.npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
Il comando stampa il tuo
--key [/path/to/my/private_key] y e genera un zip crittografato, da utilizzare con il comando di upload o il comando di decrittazione.
--key-data [privateKey] Criptare
Sottosezione intitolata “Criptare”
Sezione intitolata “Decrittografa V2”npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
Facoltativamente, puoi fornire:
--key [/path/to/my/private_key] la percorso della tua chiave privata.
--key-data [privateKey] i dati della chiave privata, se desideri utilizzare inline. Questo comando è principalmente utilizzato per scopi di test, decrittograferà il zip e stampa la chiave di sessione decrittografata in base64 nella console.
--checksum [checksum] il checksum del file, verificherà il checksum dopo la decrittografia.
npx @capgo/cli bundle zip [appId]
[appId] è il tuo ID app, il formato è spiegato qui.
Facoltativamente, puoi fornire:
--path [/path/to/my/bundle]per caricare una cartella specifica.--bundle [1.0.0]per impostare il numero di versione del bundle nel nome del file.--name [myapp]per sovrapporre il nome del file.--jsonper stampare le informazioni in formato JSON.--no-code-checkper ignorare il controllo code e inviare comunque il pacchetto.--key-v2per utilizzare il nuovo sistema di crittografia. Questo è richiesto poiché il nuovo sistema di crittografia utilizza migliori checksum per verificare l'integrità del file.
Compatibilità
Sezione intitolata “Compatibilità”npx @capgo/cli bundle compatibility [appId] -c [channelId]
[appId] è il tuo ID app, il formato è spiegato qui.
[channelId] il nome del tuo nuovo canale.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegarti al tuo account.--textutilizzare il testo al posto degli emoji nella tabella--channel [channel]il canale per verificare la compatibilità con.--package-json <packageJson>Un percorso per package.json. Utile per i monorepos--node-modules <nodeModules>Una lista di percorsi per node_modules. Utile per i monorepos (separati da virgole ad esempio: ../../node_modules,./node_modules)
Aggiungi
Sezione intitolata “Aggiungi”npx @capgo/cli channel add [channelId] [appId]
[channelId] il nome del tuo nuovo canale. [appId] il tuo ID app nel formato com.test.app è spiegato qui.
Elimina
Sezione intitolata “Elimina”npx @capgo/cli channel delete [channelId] [appId]
[channelId] il nome del tuo canale che vuoi eliminare. [appId] la tua ID app nel formato com.test.app è spiegato qui.
npx @capgo/cli channel list [appId]
[appId] la tua ID app nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegare al tuo account.
Imposta
Sezione intitolata “Imposta”npx @capgo/cli channel set [channelId] [appId]
[appId] è il tuo ID applicazione, la formattazione è spiegata qui.
Facoltativamente, puoi fornire:
--bundle [1.2.3]il tuo bundle applicazione già inviato in cloud, per collegarlo a un canale.--latestottenere la versione del bundle dapackage.json:version, non può essere utilizzato con--bundle.--state [ normal | default ]impostare lo stato del canale, può esserenormalodefault. Un canale deve esseredefault.--downgradeconsente al canale di inviare versioni di downgrade ai dispositivi.--no-downgradeimpedisce al canale di inviare versioni di downgrade ai dispositivi.--upgradeconsente al canale di inviare versioni di upgrade (maggiore) ai dispositivi.--no-upgradeimpedisce al canale di inviare versioni di upgrade (maggiore) ai dispositivi.--iosconsente al canale di inviare versioni ai dispositivi iOS.--no-iosimpedisce al canale di inviare versioni ai dispositivi iOS.--androidconsente al canale di inviare versioni ai dispositivi Android.--no-androidimpedisce al canale di inviare versioni ai dispositivi Android.--self-assignconsente ai dispositivi di assegnarsi automaticamente a questo canale.--no-self-assignimpedisce ai dispositivi di assegnarsi automaticamente a questo canale.--disable-auto-update STRATEGYDisabilita la strategia di aggiornamento automatico per questo canale. Le opzioni possibili sono: maggiore, minore, metadati, nessuno.--apikey [key]API chiave per collegarsi al proprio account.
Disabilita la strategia di aggiornamento
Sezione intitolata “Disabilita strategia di aggiornamento”Ci sono pochi modi per gestire la disabilitazione degli aggiornamenti per versioni troppo vecchie.
Capgo non può aggiornare le librerie native code; quindi, un aggiornamento da una versione con la vecchia libreria nativa code a una versione con la libreria nativa aggiornata code non dovrebbe essere possibile.
Ci sono due modi per raggiungere questo obiettivo.
In primo luogo, la major strategia. Impedisce un aggiornamento da 0.0.0 -> 1.0.0. Il major è il numero evidenziato (1.0.0 e 0.0.0).
In secondo luogo, la minor strategia. Impedisce un aggiornamento da 0.0.0 -> 1.1.0 o un aggiornamento da 1.1.0 a 1.2.0.
ATTENZIONE questa strategia non impedisce un aggiornamento da 0.1.0 -> 1.1.0
Terzo, il patch strategia. È stato aggiunto in capgo come un modo molto rigoroso. Non è raccomandato di utilizzarlo a meno che non si comprenda completamente come funziona.
Per accettare un aggiornamento sono necessarie le seguenti condizioni:
- Il major è lo stesso tra la nuova e la vecchia versione
- Il minor è lo stesso tra la nuova e la vecchia versione
- Il patch della nuova versione se maggiore del patch della vecchia versione
Ecco un esempio di quali scenari l'aggiornamento è consentito o negato
- 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 ❌
Infine la strategia più complessa. Il metadata strategia.
In primo luogo è necessario sapere che inizialmente dopo averlo abilitato gli aggiornamenti SARANNO falliti poiché il canale manca dei dati di metadati richiesti.
Se il canale è privo di metadati, vedrai un messaggio come questo:
Se vedi qualcosa di questo tipo, significa che devi andare alla bundle corrente del canale che sta fallendo e impostare i metadati.
In primo luogo, determina quale canale sta fallendo. Puoi farlo guardando la misconfigured colonna
Poi vai al canale che sta fallendo e clicca su Bundle numberQuesto dovrebbe portarti alla pagina della bundle.
Una volta lì, riempi il Minimal update version campo. Questo dovrebbe essere un semver.
If il valore che passi non è un semver riceverai un errore, ma se tutto va bene dovresti vedere qualcosa di questo tipo:
Ora, probabilmente non vuoi impostare manualmente questo dato ogni volta che aggiorni. Fortunatamente, il CLI ti impedirà di inviare un aggiornamento senza questo metadato
Per caricare correttamente un bundle quando si utilizza l' metadata opzione, è necessario passare il --min-update-version con il semver valido. Qualcosa di questo tipo:
L' --min-update-version non è l'UNICO modo di fare la compatibilità.
Esistono anche le --auto-min-update-version. Ecco come funziona.
Prima, prende in considerazione la versione attualmente caricata sul canale. Controlla la compatibilità allo stesso modo che bundle compatibility Comando non funzionerà.
Secondo, se la nuova versione è 100% compatibile, si utilizza la versione più recente del canale.
Se non, allora si imposta la versione minima a quella del bundle del nuovo upload. min_update_version da quella della versione più recente del canale.
Se non, allora si imposta la versione minima a quella del bundle del nuovo upload. min_update_version alla versione del bundle del nuovo upload.
Otterrete sempre informazioni sulle versioni minime quando utilizzate questa opzione. Vedrà qualcosa di questo tipo: min_update_version Minima versione di aggiornamento
Minima versione di aggiornamento non compatibile
Sezione intitolata “Crittografia end-to-end (Non fiduciaria)”
__CAPGO_KEEP_0__ supporta la crittografia end-to-end, il che significa che il tuo bundle (__CAPGO_KEEP_1__) viene crittografato prima di essere inviato in cloud e decrittografato sul dispositivo. Per farlo, è necessario generare una coppia di chiavi RSA, può utilizzare il seguente comando per generarle.Capgo supports end-to-end encryption, this means that your bundle(code) is encrypted before sent to the cloud and decrypted on the device. For that, you need to generate an RSA key pair, you can use the following command to generate it.
__CAPGO_KEEP_0__ supports end-to-end encryption, this means that your bundle(__CAPGO_KEEP_1__) is encrypted before sent to the cloud and decrypted on the device. For that, you need to generate an RSA key pair, you can use the following command to generate it. The encryption system is a combination of RSA and AES, the RSA key is used to encrypt the AES key, and the AES key is used to encrypt the file.
Ecco di seguito ulteriori informazioni sull'insieme di crittografia.
Schema di crittografia
Crea una chiave per il tuo app
Sezione intitolata “Crea una chiave per il tuo app”npx @capgo/cli key create
Se lo desideri, puoi fornire: --force per sovrascrivere la chiave esistente. Questo comando creerà per te una coppia di chiavi nel tuo app, e ti chiederà di salvare la chiave privata in un luogo sicuro. È consigliabile non committare la chiave privata nel file di commit Git, e non condividerla con nessuno.
Dopo il tuo test locale, rimuovi la chiave dal file di configurazione e aggiungila nel passo di CI con
key save
Salva la chiave nel file di configurazione dell'app
Sezione intitolata “Salva la chiave nel file di configurazione dell'app”npx @capgo/cli key save
Se lo desideri, puoi fornire:
--key [/path/to/my/public_key] il percorso del tuo file di chiave pubblica.
--key-data [publicKey] i dati della chiave pubblica, se desideri utilizzarli in linea. Questo comando è utile se hai seguito la raccomandazione e non hai commesso la chiave nel tuo file di configurazione dell'app.
Integrazione Ci
Sezione intitolata “Integrazione Ci”Per automatizzare il tuo lavoro, ti consiglio di far fare al GitHub l'azione di invio dei dati sul nostro server
Tutorial dell'azione GitHub - Cap-go/demo-app
La nostra demo app
Sezione intitolata “La nostra demo app”Non dimenticare di configurare la variabile di ambiente CI con la tua API chiave