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 dovrebbero 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 ricordare il apikey per te.
Facoltativamente puoi dare:
--local Questo memorizzerà il tuo apikey nel repository locale e lo ignorerà nel 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.
npx @capgo/cli app add [appId]
[appId] è spiegato com.test.app qui 💡 Tutte le opzioni saranno dedotte dalla tua configurazione se non fornite..
Facoltativamente, puoi fornire:
your app ID the format
--icon [/path/to/my/icon]avere un'icona personalizzata visualizzata nell'app web Capgo.--name [test]avere un nome personalizzato nella lista.--apikey [key]API chiave per collegarsi al proprio account.--retention [retention]periodo di conservazione del pacchetto dell'app in giorni, 0 di default = infinito.
Esempio di capacitor.config.json Per appId e AppName, l'icona viene indovinata nel cartello delle 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'app, il formato è spiegato qui.
Facoltativamente, puoi dare:
--icon [/path/to/my/icon]per avere un'icona personalizzata visualizzata nel Capgo app web.--name [test]per avere un nome personalizzato nella lista.--retention [retention]periodo di conservazione del bundle dell'app in giorni, 0 di default = infinito.--apikey [key]chiave API per collegarsi al proprio account.
npx @capgo/cli app list [appId]
[appId] il tuo ID dell'app nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]chiave API per collegarsi al proprio account.
Cancella
Sezione intitolata “Elimina”npx @capgo/cli app delete [appId]
[appId] il tuo ID app nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]API chiave 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.
Opzionalmente, puoi fornire:
--apikey [key]chiave API per collegarsi al tuo account.--devicecon il dispositivo specifico che desideri debuggare
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 appIdforse fornisci appIdse desideri disabilitare l'aggiornamento automatico nel capacitor-updatercon plugins.CapacitorUpdater.autoUpdate DEVI fornire almeno uno dei seguenti --string off.
You MUST provide either --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.
Opzionalmente, puoi dare:
--apikey <apikey>API chiave per collegarsi al tuo account.--path <path>Percorso del folder da caricare.--channel <channel>Canale da collegare.--external <url>Collega a un URL esterno invece 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>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 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 di versione minima richiesto per aggiornarsi a questa versione. Utilizzato solo se l'aggiornamento automatico è disabilitato nel canale tramite metadati.--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 caricamento in secondi.--deltaCarica i file Delta (manifest) accanto al bundle completo.--delta-onlyCarica solo gli aggiornamenti Delta (manifest), saltando il bundle completo.--no-deltaDisabilita le caricature Delta (manifest) (utile se è abilitato 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, utilizzare TUS al suo posto.--multipartUn calcolo 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>Imposta il bundle in __CAPGO_KEEP_0__.config.json.--auto-set-bundleSet the bundle in capacitor.config.json.--node-modules <nodeModules>⭐️ L'opzione esterna aiuta a sbloccare 2 casi: aziende con preoccupazioni sulla privacy, non inviare il __CAPGO_KEEP_0__ a un terzo part e app più grandi di 200 MB. Con questa impostazione, __CAPGO_KEEP_1__ memorizza solo il collegamento al file zip e invia il collegamento a tutte le app.
⭐️ External option helps to unlock 2 cases: corporate with privacy concern, don’t send the code to a third part and app bigger than 200 MB. With this setting, Capgo store only the link to the zip and sends the link to all apps.
👀 Capgo il cloud non guarda mai cosa c'è nel link (per opzione esterna), o nella code quando è memorizzata.
🔑 Puoi aggiungere un secondo strato di sicurezza utilizzando la crittografia, poi 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] L'ID del tuo app il formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]API chiave per collegarsi al tuo account.
npx @capgo/cli bundle delete [appId]
[appId] il tuo ID app nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]API chiave per collegarsi al tuo account.--bundlecon il numero di versione cancellerà solo questa versione.
In un intervallo di SemVer per una versione maggiore a Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] il tuo ID applicazione nel formato com.test.app è spiegato qui.
Opzionalmente, puoi fornire:
--apikey [key]API chiave per collegarsi al 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).
Esempio: Se hai 10 versioni da 10.0.1 a 10.0.11, e 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 sarà mantenuto.
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.
Questa riga di comando chiederà conferma, mostra una tabella di cosa sarà mantenuto e rimosso.
Avviso: Questa riga di comando è deprecata e verrà eliminata nella prossima versione maggiore. Si prega di utilizzare il nuovo sistema di crittografia.
npx @capgo/cli bundle encrypt [path/to/zip]
Questa riga di comando viene utilizzata quando si utilizza una fonte esterna per memorizzare il tuo 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.
La riga di comando stampa il tuo ivSessionKeye e generare un zip cifrato, per utilizzarlo con il comando di caricamento o il comando di decrittazione.
Encrypt V2
Sottosezione intitolata “Encrypt 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à cifrato con la chiave privata e inviato insieme al bundle. Nell'encryption v2 il checksum viene aggiornato per diventare una “firma” del bundle.
Facoltativamente, puoi fornire:
--key [/path/to/my/private_key] la via della tua 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 ivSessionKeye e generare un zip cifrato, per utilizzarlo con il comando di caricamento o il comando di decrittazione.
npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
Facoltativamente, 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. Questo comando è principalmente utilizzato per scopi di test, decifrerà il zip e stampa la chiave di sessione base64 decifrata nella console.
Decrypt V2
Sezione intitolata “Decrypt V2”npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
Se lo desideri, 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. Questo comando è principalmente utilizzato per scopi di test, decifrerà il zip e stampa la chiave di sessione base64 decifrata nella console.
--checksum [checksum] il checksum del file, verificherà il checksum dopo la decifrazione.
npx @capgo/cli bundle zip [appId]
[appId] è il tuo ID 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 [channelName]
[appId] è il tuo ID app, il formato è spiegato qui.
[channelName] il nome del canale da controllare.
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 monorepositori--node-modules <nodeModules>Una lista di percorsi per node_modules. Utile per i monorepositori (separati da virgole ad esempio: ../../node_modules,./node_modules)
Aggiungi
Sezione intitolata “Aggiungi”npx @capgo/cli channel add [channelName] [appId]
[channelName] il nome del tuo nuovo canale, ad esempio production o beta. [appId] il tuo ID dell'applicazione nel formato com.test.app è spiegato qui.
Elimina
Sezione intitolata “Elimina”npx @capgo/cli channel delete [channelName] [appId]
[channelName] il nome del canale che desideri 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.
Facoltativamente, puoi fornire:
--apikey [key]la chiave API per collegare il tuo account.
Imposta
Sezione intitolata “Imposta”npx @capgo/cli channel set [channelName] [appId]
[appId] è il tuo ID app, il formato è spiegato qui.
[channelName] il nome del canale che desideri configurare, ad esempio production o beta.
Facoltativamente, puoi fornire:
--bundle [1.2.3]il tuo bundle app 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. Un canale 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-androiddisabilita il canale di inviare versioni ai dispositivi Android.--self-assignconsente ai dispositivi di assegnarsi automaticamente a questo canale.--no-self-assigndisabilita i dispositivi di assegnarsi automaticamente a questo canale.--disable-auto-update STRATEGYDisabilita la strategia di aggiornamento automatico per questo canale. Le opzioni possibili sono: major, minor, patch, metadata, none.--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 nativo code quindi un aggiornamento da una versione con il nativo vecchio code a una versione con il nativo aggiornato code non dovrebbe essere possibile.
Ci sono un paio di modi per raggiungere questo obiettivo.
In primo luogo, il major strategy. Previene un aggiornamento dal baseline nativo 0.0.0 -> bundle di destinazione 1.0.0. Il numero maggiore è il numero evidenziato (1.0.0 e 0.0.0).
Secondo è la minor strategia. Evita l'aggiornamento quando il pacchetto di destinazione ha un numero maggiore o minore della versione di base nativa del dispositivo, come 0.0.0 -> 1.1.0 o 1.1.0 -> 1.2.0.
Terzo, la patch strategia. È stato aggiunto in capgo come un modo molto rigoroso. Non è consigliato di utilizzarlo a meno che non si comprenda completamente come funziona.
Per accettare un aggiornamento, devono essere soddisfatte le seguenti condizioni:
- Il numero maggiore è lo stesso tra il pacchetto di destinazione e
version_build - Il numero minore è lo stesso tra il pacchetto di destinazione e
version_build - Il patch è lo stesso tra il pacchetto di destinazione e
version_build - Solo la suffisso della versione può differire, come prerelease (
-beta.2) o metadati di costruzione (+build.2)
Ecco un esempio di quali scenari l'aggiornamento è consentito o negato
- 1.0.0-beta.1 -> 1.0.0-beta.2 consentito
- 1.0.0+build.1 -> 1.0.0+build.2 consentito
- 1.0.0 -> 1.0.1 bloccato
- 1.0.0 -> 1.1.0 bloccato
- 1.0.0 -> 2.0.0 bloccato
La comparazione della strategia utilizza la baseline nativa inviata come version_build, non il bundle scaricato correntemente inviato come version_name.
Infine la strategia più complessa. Il metadata strategia.
Innanzitutto è necessario sapere che inizialmente dopo averlo abilitato gli aggiornamenti CI RIMARRANNO fallirà come il canale manca i metadati richiesti.
Se il canale manca i metadati vedrai un messaggio come questo:
Se vedi qualcosa di questo tipo sai che devi andare alla cartella 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 number. Ciò dovrebbe portarti alla pagina della cartella.
Una volta lì, riempi il Minimal update version campo. Questo dovrebbe essere un If il valore che passi non è un semver riceverai un errore, ma se tutto va bene dovresti vedere qualcosa di questo tipo:.
Setta la versione minima
CLI fallimento senza metadati
opzione, è necessario passare il metadata con il --min-update-version semver valido . Qualcosa di questo tipo:__CAPGO_KEEP_0__ caricamento con metadati
La --min-update-version non è l'UNICO modo per 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 del bundle compatibility comando.
Secondo, se la nuova versione è del 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 pacchetto della versione appena caricata.
Otterrai sempre informazioni su cosa è il
utilizzando questa opzione. Assomiglierà a questo: min_update_version Minima versione di aggiornamento
Minima versione di aggiornamento non compatibile
Min update version not compatible
Sezione intitolata “Crittografia end-to-end (Non fiduciaria)”Capgo supporta la crittografia end-to-end, il che significa che il tuo pacchetto (code) viene crittografato prima di essere inviato in cloud e decrittografato sul dispositivo. Per questo, è necessario 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.
Ecco di seguito ulteriori informazioni sullo schema di crittografia.
Schema di crittografia
Creare una chiave per il tuo app
Sezione intitolata “Creare 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 nel tuo app, e chiederà di salvare la chiave privata in un luogo sicuro. È consigliabile non committare la chiave privata nel repository Git, e non condividerla con nessuno.
Dopo aver effettuato i test locali, rimuovi la chiave dal file di configurazione e aggiungila nel passo di CI con
key save
Salva la chiave nel file di configurazione del tuo app
Sezione intitolata “Salva la chiave nel tuo config dell'app”npx @capgo/cli key save
Opzionalmente, puoi fornire:
--key [/path/to/my/public_key] la percorso del tuo file di 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 nel tuo config dell'app.
Integrazione Ci
Sezione intitolata “Integrazione Ci”Per automatizzare il tuo lavoro, ti consiglio di far fare all'azione GitHub il lavoro di invio sul nostro server
La nostra demo app
Sezione intitolata “La nostra demo app”Dimenticati di configurare la variabile di ambiente CI con la tua API chiave
Continua da Comandi
Sezione intitolata “Continua da Comandi”Se stai utilizzando Comandi per pianificare dashboard e operazioni di API API Overview API Overview per i dettagli di implementazione in __CAPGO_KEEP_0__ Overview Introduzione API Keys API Keys per i dettagli di implementazione in __CAPGO_KEEP_0__ Keys per i dettagli di implementazione in Devices, e Bundles per i dettagli di implementazione in Bundles.