Comandi
Copia un prompt di configurazione con i passaggi 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 progetto acceso correttamente.
Inizializzazione
Sezione intitolata “Inizializzazione”npx @capgo/cli@latest init [apikey]
Questo metodo è qui per iniziarti passo dopo passo.
Aggiungerà il tuo app a Capgo. Aggiungerà il code al tuo app per validare l'aggiornamento. Allo stesso modo, costruirà il tuo app. Inoltre, caricherà il tuo app su Capgo. E ti aiuterà a verificare se l'aggiornamento funziona.
npx @capgo/cli login [apikey]
Questo metodo è qui per ricordare il apikey per te.
Opzionalmente puoi dare:
--local Questo memorizzerà il tuo chiave API in il repository locale e ignoralo nel file .gitignore.
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.
Aggiungi
Sezione intitolata “Aggiungi”npx @capgo/cli app add [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
💡 Tutte le opzioni verranno ipotizzate nel tuo config se non fornite.
Opzionalmente, puoi fornire:
--icon [/path/to/my/icon]per avere un'icona personalizzata nella tua app web Capgo.--name [test]per avere un nome personalizzato nella lista.--apikey [key]API chiave per collegarsi al tuo account.--retention [retention]periodo di conservazione del bundle dell'app in giorni, 0 per impostazione predefinita = infinito.
Esempio di capacitor.config.json per appId e AppName, l'icona viene ipotizzata 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 è spiegato qui.
Opzionalmente, puoi fornire:
--icon [/path/to/my/icon]per avere un'icona personalizzata nella Capgo app web.--name [test]per avere un nome personalizzato nella lista.--retention [retention]periodo di conservazione del pacchetto dell'applicazione in giorni, 0 per impostazione predefinita = infinito.--apikey [key]API chiave per collegarsi al tuo account.
npx @capgo/cli app list [appId]
[appId] il tuo ID dell'applicazione il formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegarsi al tuo account.
Elimina
Sezione intitolata “Elimina”npx @capgo/cli app delete [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegarsi al tuo account.--bundlecon il numero di versione eliminerà solo questa versione.
npx @capgo/cli app debug [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Facoltativamente, puoi fornire:
--apikey [key]la chiave API per collegarti al tuo account.--devicecon il dispositivo specifico che desideri debuggare
Impostazioni
Sezione intitolata “Impostazioni”npx @capgo/cli app setting [path]
Modifica la configurazione Capacitor.
[path] - percorso della impostazione che desideri modificare. Ad esempio, per disabilitare l'aggiornamento automatico in appIdfornisci appId.
Se desideri disabilitare l'aggiornamento automatico in capacitor-updater, fornisci plugins.CapacitorUpdater.autoUpdate con --string off.
Devi fornire uno dei seguenti --string o --bool!
Opzioni:
--string <string>- imposta la impostazione a una stringa--bool <true | false>- imposta la impostazione a un booleano
Pacchetto
Sezione intitolata “Pacchetto”npx @capgo/cli bundle upload [appId]
[appId] è il tuo ID app, il formato è spiegato qui.
Facoltativamente, puoi fornire:
--apikey <apikey>API chiave per collegarsi al tuo account.--path <path>Percorso del cartella da caricare.--channel <channel>Canale da collegare.--external <url>Collega un URL esterno al posto di caricare su Capgo Cloud.--iv-session-key <key>Imposta la chiave di 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>Porto per il tuo 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 chiaro.--no-code-checkIgnora la verifica se notifyAppReady() è chiamato nel file sorgente code e l'indice presente nella cartella radice.--display-iv-sessionMostra nella console la chiave di IV e di sessione utilizzate per cifrare l'aggiornamento.--bundle <bundle>Numero di versione del bundle da caricare.--min-update-version <minUpdateVersion>Numero minimo di versione richiesto per aggiornarsi a questa versione. Utilizzato solo se l'aggiornamento automatico è disabilitato tramite metadati nel canale.--auto-min-update-versionImposta la versione minima di aggiornamento in base ai pacchetti nativi.--ignore-metadata-checkIgnora il controllo dei metadati (node_modules) durante l'upload.--ignore-checksum-checkIgnora il controllo 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 le aggiornamenti Delta (manifest), saltando il bundle completo.--no-deltaDisabilita le upload Delta (manifest) (utile se si attiva il modo di applicazione istantanea ma si desidera un bundle completo).autoUpdateCarica il bundle utilizzando il protocollo tus.--tusUtilizza il protocollo multipart per caricare i dati su S3, Obsoleto, utilizza TUS invece.--multipartUn checksum crittografato (firma). Utilizzato solo quando si carica un bundle esterno.--encrypted-checksum <encryptedChecksum>Un percorso per package.json. Utile per i monorepos.--package-json <packageJson>__CAPGO_KEEP_0__--auto-set-bundleImposta il pacchetto 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 code a un terzo part e app più grandi di 200 MB. Con questa impostazione, Capgo memorizza solo il collegamento al file zip e invia il collegamento a tutte le app.
👀 Il cloud di Capgo non guarda mai cosa c'è nel 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 “senza fiducia”.
Esempio di package.json per versione
{ "version": "1.0.2"}⛔ La versione dovrebbe 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.
Facoltativamente, puoi fornire:
--apikey [key]API chiave per collegarti al tuo account.
Elimina
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 collegarti al tuo account.--bundlecon il numero di versione cancellerà solo questa versione.
Pulizia
Sezione intitolata “Pulizia”in un intervallo SemVer per una versione maggiore a Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] il tuo ID app nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]API chiave per collegare il tuo account.--bundle [majorVersion]una versione che desideri rimuovere i pacchetti precedenti, terrà l'ultimo +numberToKeep.--keep [numberToKeep]il numero di pacchetti che desideri mantenere (di default 4).
Ad esempio: Se hai 10 versioni da 10.0.1 a 10.0.11, e utilizzi npx @capgo/cli cleanup [appId] --bundle=10.0.0 It eliminerà le versioni 10.0.1 a 10.0.6. Le versioni 10.0.7 a 10.0.11 saranno mantenute.
Se hai 20 versioni in totale, e non fornisci un numero di pacchetto come questo: npx @capgo/cli cleanup [appId] --keep=2 Eliminerà 18 versioni, e manterrà le ultime 2.
Questo comando chiederà conferma, mostra una tabella di cosa eliminerà e manterrà.
Crittografa
Sezione intitolata “Crittografa”Avviso: Questo comando è deprecato e verrà eliminato 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 tuo code o per scopi di test.
Opcionalmente, puoi fornire:
--key [/path/to/my/private_key] la via del tuo chiave privata.
--key-data [privateKey] i dati della chiave privata, se desideri utilizzare inline.
Il comando stampa il tuo ivSessionKeyy e genera un zip crittografato, per utilizzarlo con il comando di caricamento o il comando di decrittazione.
Crittografa V2
Sezione intitolata “Crittografa V2”npx @capgo/cli bundle encrypt [path/to/zip] [checksum]
Questo comando viene utilizzato quando si utilizza una fonte esterna per memorizzare il tuo code o per scopi di test. Il checksum è lo sha256 del bundle (generato da —key-v2), viene utilizzato per verificare l'integrità del file dopo la decrittazione. Verrà crittografato con la chiave privata e inviato insieme al bundle. Nella crittografia v2 il checksum viene aggiornato per diventare una “firma” del bundle.
Opcionalmente, puoi fornire:
--key [/path/to/my/private_key] la via del tuo chiave privata.
--key-data [privateKey] i dati della chiave privata, se desideri utilizzare inline.
--json per stampare le informazioni in formato JSON.
Il comando stampa il tuo ivSessionKeyy e genera un zip crittografato, per utilizzarlo con il comando di caricamento o il comando di decrittazione.
Decrittazione
Sezione intitolata “Decrittazione”npx @capgo/cli bundle decrypt [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 utilizzarli inline. Questo comando è principalmente utilizzato per scopi di test, decrittizzerà il zip e stampa la chiave di sessione decrittizzata in base64 nella console.
Decrittazione V2
Sezione intitolata “Decrittazione 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 utilizzarli inline. Questo comando è principalmente utilizzato per scopi di test, decrittizzerà il zip e stampa la chiave di sessione decrittizzata in base64 nella console.
--checksum [checksum] il checksum del file, verificherà il checksum dopo la decrittazione.
npx @capgo/cli bundle zip [appId]
[appId] è il tuo ID di app, il formato è spiegato qui.
Opzionalmente, puoi fornire:
--path [/path/to/my/bundle]per caricare una cartella specifica.--bundle [1.0.0]per impostare il numero di versione del pacchetto nel nome del file.--name [myapp]per sovrascrivere il nome del file.--jsonper visualizzare le informazioni come JSON.--no-code-checkper ignorare il controllo code e inviare il pacchetto comunque.--key-v2per utilizzare il nuovo sistema di crittografia. Ciò è 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 dell'applicazione, il formato è spiegato qui.
[channelId] il nome del tuo nuovo canale.
Opzionalmente, puoi fornire:
--apikey [key]API chiave per collegarsi 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 es: ../../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 dell'applicazione 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] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
npx @capgo/cli channel list [appId]
[appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]la chiave API per collegare il tuo account.
Imposta
Sezione intitolata “Imposta”npx @capgo/cli channel set [channelId] [appId]
[appId] è il tuo ID dell'applicazione, il formato è spiegato qui.
Opzionalmente, puoi fornire:
--bundle [1.2.3]il tuo bundle dell'applicazione già inviato in cloud, per collegarlo a un canale.--latestottenere la versione del pacchetto dapackage.json:version, non può essere utilizzato con--bundle.--state [ normal | default ]impostare lo stato del canale, può esserenormalodefault. Uno dei canali deve esseredefault.--downgradeconsente al canale di inviare la versione di downgrade ai dispositivi.--no-downgradeimpedisce al canale di inviare la versione di downgrade ai dispositivi.--upgradeconsente al canale di inviare la versione di upgrade (maggiore) ai dispositivi.--no-upgradeimpedisce al canale di inviare la versione di upgrade (maggiore) ai dispositivi.--iosconsente al canale di inviare la versione ai dispositivi iOS.--no-iosimpedisce al canale di inviare la versione ai dispositivi iOS.--androidconsente al canale di inviare la versione ai dispositivi Android.--no-androidimpedisce al canale di inviare la versione 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 la strategia di aggiornamento”Ci sono pochi modi per gestire la disabilitazione degli aggiornamenti per le versioni troppo vecchie.
Capgo non può aggiornare il code nativo, quindi un aggiornamento da una versione con il vecchio code nativo a una versione con il code nativo aggiornato non dovrebbe essere possibile.
Ci sono un paio di modi per raggiungere questo obiettivo.
In primo luogo, la major strategia. Impedisce un aggiornamento da 0.0.0 -> 1.0.0. Il maggiore è il numero evidenziato (1.0.0 e 0.0.0).
Secondo è la minor la 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, la patch la strategia. È stata aggiunta in capgo come un modo molto rigoroso. Non è consigliato utilizzarla a meno che non si comprenda completamente come funziona.
Per accettare un aggiornamento devono essere soddisfatte 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. La metadata strategia.
In primo luogo, è necessario sapere che inizialmente dopo averlo abilitato gli aggiornamenti __CAPGO_KEEP_0__ falliranno poiché il canale manca dei dati richiesti per il metadata.
Se il canale manca di metadata, vedrai un messaggio come questo:
Se vedi qualcosa di questo tipo, sai che devi andare alla bundle corrente per il canale che sta fallendo e impostare i metadata.
In primo luogo, determina quale canale sta fallendo. Puoi farlo guardando alla misconfigured colonna
Poi vai al canale che non funziona e clicca su Bundle numberCiò dovrebbe portarti alla pagina del pacchetto.
Una volta lì, riempisci il Minimal update version campo. Ciò dovrebbe essere un sempre versione.
Se il valore che passi non è una semperversione, otterrai un errore, ma se tutto va bene dovresti vedere qualcosa come questo:
Ora, probabilmente non desideri impostare manualmente questi dati ogni volta che aggiorni. Fortunatamente, il CLI impedirà di inviare un aggiornamento senza questo metadati
Per caricare correttamente un pacchetto quando si utilizza l' metadata opzione, è necessario passare il --min-update-version With il semver valido. Ecco un esempio:
La --min-update-version non è l'UNICO modo di fare la compatibilità.
Esiste anche il --auto-min-update-version. Ecco come funziona.
In primo luogo, prende in considerazione la versione attualmente caricata sul canale. Verifica la compatibilità allo stesso modo del bundle compatibility command.
In secondo luogo, se la nuova versione è 100% compatibile, riprende il min_update_version dal numero della versione più recente nel canale.
Se non, allora imposta il min_update_version al numero del bundle della versione appena caricata.
Con questa opzione, avrai sempre informazioni sul
. Sarà qualcosa di questo tipo: min_update_version Minima versione di aggiornamento
Se la nuova versione non è compatibile dovrebbe avere un aspetto simile a questo
Crittografia end-to-end (Senza fiducia)
Sezione intitolata “Crittografia end-to-end (Senza fiducia)”Capgo supporta la crittografia end-to-end, ciò significa che il tuo bundle (code) viene crittografato prima di essere inviato in cloud e decrittografato sul dispositivo. Per questo, hai bisogno di generare una coppia di chiavi RSA, puoi utilizzare il seguente comando per generarle.
Lo schema di crittografia è una combinazione di RSA e AES, la chiave RSA viene utilizzata per crittografare la chiave AES, e la chiave AES viene utilizzata per crittografare il file.
Per ulteriori informazioni sullo schema di crittografia, vedere di seguito.
Schema di crittografia
Crea una chiave per il tuo app
Sezione intitolata “Crea una chiave per il tuo app”npx @capgo/cli key create
Facoltativamente, puoi fornire: --force per sovrascrivere la chiave esistente. Questo comando creerà per te una coppia di chiavi nell'applicazione e ti chiederà di salvare la chiave privata in un luogo sicuro. È consigliabile non commitare la chiave privata nel repository Git e non condividerla con nessuno.
Dopo aver effettuato il test locale, rimuovi la chiave dal file di configurazione e aggiungila nel passaggio di CI con
key save
Salva la chiave nella configurazione dell'app
Sezione intitolata “Salva la chiave nella configurazione dell'app”npx @capgo/cli key save
Facoltativamente, puoi fornire:
--key [/path/to/my/public_key] la percorso del file della chiave pubblica.
--key-data [publicKey] i dati della chiave pubblica, se desideri utilizzare inline. Questo comando è utile se hai seguito la raccomandazione e non hai commesso la chiave nella configurazione dell'app.
Integrazione CI
Sezione intitolata “Integrazione CI”Per automatizzare il tuo lavoro, ti consiglio di fare dell'GitHub azione il compito di inviare sul nostro server
La nostra demo app
Sezione intitolata “La nostra demo app”Non dimenticare di configurare la variabile di ambiente CI con la tua chiave API