Saltare alla navigazione

Comandi

Tutti i comandi devono essere eseguiti nella cartella del tuo progetto con capacitor acceso correttamente.

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.

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.

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] 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"
}

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.

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.
  • --bundle con 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.
  • --device Esegui il debug con il dispositivo specifico che desideri

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

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-ssl Disabilita 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-url Stampa l'URL del bundle nella console.
  • --no-key Ignora la chiave di firma e invia l'aggiornamento in chiaro.
  • --no-code-check Ignora la verifica se notifyAppReady() è chiamato nella sorgente code e l'indice presente nella cartella radice.
  • --display-iv-session Mostra 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-version Imposta la versione minima di aggiornamento basata sui pacchetti nativi.
  • --ignore-metadata-check Ignora la verifica dei metadati (node_modules) durante l'upload.
  • --ignore-checksum-check Ignora la verifica del checksum durante l'upload.
  • --timeout <timeout> Timeout per il processo di upload in secondi.
  • --delta Carica i file Delta (manifest) insieme al bundle completo.
  • --delta-only Carica solo gli aggiornamenti Delta (manifest), saltando il bundle completo.
  • --no-delta Disabilita le pubblicazioni (manifesto) Delta (utile se directUpdate è abilitato ma desideri un bundle completo).
  • --tus Carica il bundle utilizzando il protocollo tus.
  • --multipart Utilizza 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-bundle Imposta 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.

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.
  • --bundle con il numero di versione eliminerà solo questa versione.

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à.

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.
  • --json per stampare le informazioni in formato JSON.
  • --no-code-check per ignorare il controllo code e inviare comunque il pacchetto.
  • --key-v2 per utilizzare il nuovo sistema di crittografia. Questo è richiesto poiché il nuovo sistema di crittografia utilizza migliori checksum per verificare l'integrità del file.

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.
  • --text utilizzare 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)

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.

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.

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.
  • --latest ottenere la versione del bundle da package.json:version, non può essere utilizzato con --bundle.
  • --state [ normal | default ] impostare lo stato del canale, può essere normal o default. Un canale deve essere default.
  • --downgrade consente al canale di inviare versioni di downgrade ai dispositivi.
  • --no-downgrade impedisce al canale di inviare versioni di downgrade ai dispositivi.
  • --upgrade consente al canale di inviare versioni di upgrade (maggiore) ai dispositivi.
  • --no-upgrade impedisce al canale di inviare versioni di upgrade (maggiore) ai dispositivi.
  • --ios consente al canale di inviare versioni ai dispositivi iOS.
  • --no-ios impedisce al canale di inviare versioni ai dispositivi iOS.
  • --android consente al canale di inviare versioni ai dispositivi Android.
  • --no-android impedisce al canale di inviare versioni ai dispositivi Android.
  • --self-assign consente ai dispositivi di assegnarsi automaticamente a questo canale.
  • --no-self-assign impedisce ai dispositivi di assegnarsi automaticamente a questo canale.
  • --disable-auto-update STRATEGY Disabilita 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.

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:

Non è stato trovato il metadati

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

Tavola non configurata correttamente

Poi vai al canale che sta fallendo e clicca su Bundle numberQuesto dovrebbe portarti alla pagina della bundle.

Localizza il canale che sta fallendo

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:

Imposta versione minima

Ora, probabilmente non vuoi impostare manualmente questo dato ogni volta che aggiorni. Fortunatamente, il CLI ti impedirà di inviare un aggiornamento senza questo metadato

CLI fallimento senza metadati

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:

CLI caricamento con metadati

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

Se la nuova versione non è compatibile dovrebbe vedere qualcosa di questo tipo:

Minima versione di aggiornamento non compatibile

Crittografia end-to-end (Non fiduciaria)

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.

Come funziona il crittografia

Schema di crittografia

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.

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

GitHub - Cap-go/demo-app

Non dimenticare di configurare la variabile di ambiente CI con la tua API chiave