Commands
Todos los comandos deben ejecutarse en la carpeta de su aplicación con el proyecto del condensador encendido correctamente.
Inicio
Section titled “Inicio”npx @capgo/cli@latest init [apikey]
Este método está aquí para incorporarlo paso a paso.
Agregará su aplicación a Capgo. Agregará el código a su aplicación para validar la actualización. Asimismo, construirá su aplicación. Además, cargará su aplicación en Capgo. Y te ayudará a comprobar si la actualización funciona.
Iniciar sesión
Section titled “Iniciar sesión”npx @capgo/cli login [apikey]
Este método está aquí para recordar el apikey por usted.
Opcionalmente puedes regalar:
--local Esto almacenará su apikey en el repositorio local y la ignorará.
Médico
Section titled “Médico”npx @capgo/cli doctor
Comando para verificar si está actualizado con los paquetes Capgo.
Este comando también será útil para informar errores.
Aplicación
Section titled “Aplicación”Agregar
Section titled “Agregar”npx @capgo/cli app add [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
💡 Todas las opciones se adivinarán en su configuración si no se proporcionan.
Opcionalmente puedes dar:
--icon [/path/to/my/icon]para mostrar un ícono personalizado en la aplicación web Capgo.--name [test]para tener un nombre personalizado en la lista.--apikey [key]API clave para vincular a su cuenta.--retention [retention]período de retención del paquete de aplicaciones en días, 0 de forma predeterminada = infinito.
Ejemplo de capacitor.config.json para appId y AppName, el ícono se adivina en la carpeta de recursos
{ "appId": "ee.forgr.capacitor_go", "appName": "Capgo", "webDir": "dist"}Establecer
Section titled “Establecer”npx @capgo/cli app set [appId]
[appId] es el ID de su aplicación, el formato se explica aquí.
Opcionalmente puedes dar:
--icon [/path/to/my/icon]para mostrar un ícono personalizado en la aplicación web Capgo.--name [test]para tener un nombre personalizado en la lista.--retention [retention]período de retención del paquete de aplicaciones en días, 0 de forma predeterminada = infinito.--apikey [key]API clave para vincular a su cuenta.
npx @capgo/cli app list [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.
Eliminar
Section titled “Eliminar”npx @capgo/cli app delete [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.--bundlecon el número de versión solo eliminará esta versión.
Depurar
Section titled “Depurar”npx @capgo/cli app debug [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.--devicecon el dispositivo específico que desea depurar
Configuración
Section titled “Configuración”npx @capgo/cli app setting [path]
Edite la configuración Capacitor.
[path]: ruta de la configuración que desea cambiar. Por ejemplo, para cambiar appId, proporcione appId.
Si desea deshabilitar la actualización automática en capacitor-updater, proporcione plugins.CapacitorUpdater.autoUpdate
¡DEBE proporcionar --string o --bool!
Opciones:
--string <string>- establece la configuración en una cadena--bool <true | false>- establece la configuración en booleano
Paquete### Subir
Section titled “Paquete### Subir”npx @capgo/cli bundle upload [appId]
[appId] es el ID de su aplicación, el formato se explica aquí.
Opcionalmente puedes dar:
--apikey <apikey>API clave para vincular a su cuenta.--path <path>Ruta de la carpeta a cargar.--channel <channel>Canal al que vincular.--external <url>Enlace a una URL externa en lugar de cargarlo en la nube Capgo.--iv-session-key <key>Establezca el IV y la clave de sesión para la URL del paquete externo.--s3-endpoint <s3Endpoint>URL del punto final de S3. No funciona con cargas delta ni con la opción externa.--s3-region <region>Región para su depósito S3.--s3-apikey <apikey>API clave para su punto final S3.--s3-apisecret <apisecret>API secreto para su punto final S3.--s3-bucket-name <bucketName>Nombre de su depósito de AWS S3.--s3-port <port>Puerto para su punto final S3.--no-s3-sslDeshabilitar SSL para carga S3.--key <key>Ruta personalizada para la clave de firma pública (sistema v1).--key-data <keyData>Clave de firma pública (sistema v1).--key-v2 <key>Ruta personalizada para la clave de firma privada (sistema v2).--key-data-v2 <keyData>Clave de firma privada (sistema v2).--bundle-urlImprime la URL del paquete en la salida estándar.--no-keyIgnorar la clave de firma y enviar una actualización clara.--no-code-checkIgnore la verificación si se llama a notifyAppReady() en el código fuente y el índice presente en la carpeta raíz.--display-iv-sessionMuestra en la consola el IV y la clave de sesión utilizados para cifrar la actualización.--bundle <bundle>Número de versión del paquete que se va a cargar.--min-update-version <minUpdateVersion>Versión mínima requerida para actualizar a esta versión. Se usa solo si la desactivación de la actualización automática está configurada en metadatos en el canal.--auto-min-update-versionEstablece la versión mínima de actualización según los paquetes nativos.--ignore-metadata-checkIgnora la verificación de metadatos (node_modules) al cargar.--ignore-checksum-checkIgnora la verificación de suma de verificación al cargar.--timeout <timeout>Tiempo de espera para el proceso de carga en segundos.--deltaCarga archivos Delta (manifiesto) junto con el paquete completo.--delta-onlyCarga solo actualizaciones Delta (manifiesto), omitiendo el paquete completo.--no-deltaDeshabilita las cargas Delta (manifiesto) (útil sidirectUpdateestá habilitado pero desea un paquete completo).--tusSube el paquete usando el protocolo tus.--multipartUtiliza un protocolo multiparte para cargar datos en S3. En desuso, utilice TUS en su lugar.--encrypted-checksum <encryptedChecksum>Una suma de comprobación cifrada (firma). Se utiliza solo al cargar un paquete externo.--package-json <packageJson>Una ruta al paquete.json. Útil para monorepos.--auto-set-bundleConfigure el paquete en capacitor.config.json.--node-modules <nodeModules>Una lista de rutas a node_modules. Útil para monorepos (separados por comas, por ejemplo: ../../node_modules,./node_modules)
⭐️ 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. Con esta configuración, Capgo almacena solo el enlace al zip y envía el enlace a todas las aplicaciones.
👀 Capgo la nube nunca mira lo que hay en el enlace (para opción externa) o en el código cuando se almacena.
🔑 You can add a second layer of security by using encryption, then Capgo will not be able to look or modify anything, it becomes “trustless”.Ejemplo de
package.jsonpara la versión
{ "version": "1.0.2"}⛔ La versión debe ser mayor que “0.0.0”.
💡 Don’t forget to update the version number each time you send one, version number cannot be overridden, or reused after deletion for security reason.
npx @capgo/cli bundle list [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.
Eliminar
Section titled “Eliminar”npx @capgo/cli bundle delete [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.--bundlecon el número de versión solo eliminará esta versión.
Limpieza
Section titled “Limpieza”en un rango SemVer para una versión mayor a Cloud
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.--bundle [majorVersion]una versión para la que desea eliminar paquetes anteriores, mantendrá el último +numberToKeep.--keep [numberToKeep]la cantidad de paquetes que desea conservar (predeterminado 4).
Por ejemplo: si tiene 10 versiones de 10.0.1 a 10.0.11 y usa npx @capgo/cli cleanup [appId] --bundle=10.0.0, eliminará 10.0.1 a 10.0.6. Se mantendrán del 10.0.7 al 10.0.11.
If you have 20 versions in total, and you don’t provide a bundle number like this: npx @capgo/cli cleanup [appId] --keep=2 It will remove 18 versions, and keep the last 2.
Este comando pedirá confirmación, muestra una tabla de lo que se mantendrá y eliminará.
Cifrar
Section titled “Cifrar”Advertencia: este comando está obsoleto y se eliminará en la próxima versión principal. Utilice el nuevo sistema de cifrado.
npx @capgo/cli bundle encrypt [path/to/zip]
Este comando se utiliza cuando utiliza una fuente externa para almacenar su código o con fines de prueba.
Opcionalmente puedes dar:
--key [/path/to/my/private_key] la ruta de su clave privada.
--key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea.
El comando imprimirá su ivSessionKeyy y generará un zip cifrado, para usarlo con el comando de carga o el comando decrit.
Cifrar V2
Section titled “Cifrar V2”npx @capgo/cli bundle encrypt [path/to/zip] [checksum]
Este comando se utiliza cuando utiliza una fuente externa para almacenar su código o con fines de prueba. La suma de comprobación es el sha256 del paquete (generado por —key-v2), se utiliza para verificar la integridad del archivo después del descifrado. Se cifrará con la clave privada y se enviará junto con el paquete. En el cifrado v2, la suma de comprobación se actualiza para convertirse en una “firma” del paquete.
Opcionalmente puedes dar:
--key [/path/to/my/private_key] la ruta de su clave privada.
--key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea.
--json para generar información como json.
El comando imprimirá su ivSessionKeyy y generará un zip cifrado, para usarlo con el comando de carga o el comando decrit.
Descifrar
Section titled “Descifrar”npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
Opcionalmente puedes dar:
--key [/path/to/my/private_key] la ruta de su clave privada.--key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea. Este comando se utiliza principalmente con fines de prueba, descifrará el zip e imprimirá la clave de sesión descifrada en base64 en la consola.
Descifrar V2
Section titled “Descifrar V2”npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
Opcionalmente puedes dar:
--key [/path/to/my/private_key] la ruta de su clave privada.
--key-data [privateKey] los datos de la clave privada, si desea utilizarlos en línea. Este comando se utiliza principalmente con fines de prueba, descifrará el zip e imprimirá la clave de sesión descifrada en base64 en la consola.
--checksum [checksum] la suma de verificación del archivo, verificará la suma de verificación después del descifrado.
Código postal
Section titled “Código postal”npx @capgo/cli bundle zip [appId]
[appId] es el ID de su aplicación, el formato se explica aquí.
Opcionalmente puedes dar:
--path [/path/to/my/bundle]para cargar una carpeta específica.--bundle [1.0.0]para establecer el número de versión del paquete del nombre de archivo.--name [myapp]para anular el nombre del archivo.--jsonpara generar información como json.--no-code-checkpara ignorar la verificación del código y enviar el paquete de todos modos.--key-v2para utilizar el nuevo sistema de cifrado. Esto es necesario ya que el nuevo sistema de cifrado utiliza mejores sumas de verificación para verificar la integridad del archivo.
Compatibilidad
Section titled “Compatibilidad”npx @capgo/cli bundle compatibility [appId] -c [channelId]
[appId] es el ID de su aplicación, el formato se explica aquí.
[channelId] el nombre de tu nuevo canal.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.--textusa texto en lugar de emojis en la tabla--channel [channel]el canal para verificar la compatibilidad.--package-json <packageJson>Una ruta al paquete.json. Útil para monorepos--node-modules <nodeModules>Una lista de rutas a node_modules. Útil para monorepos (separados por comas, por ejemplo: ../../node_modules,./node_modules)
Agregar
Section titled “Agregar”npx @capgo/cli channel add [channelId] [appId]
[channelId] el nombre de tu nuevo canal. [appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Eliminar
Section titled “Eliminar”npx @capgo/cli channel delete [channelId] [appId]
[channelId] el nombre de tu canal que deseas eliminar. [appId] el ID de su aplicación, el formato com.test.app se explica aquí.
npx @capgo/cli channel list [appId]
[appId] el ID de su aplicación, el formato com.test.app se explica aquí.
Opcionalmente puedes dar:
--apikey [key]API clave para vincular a su cuenta.
Establecer
Section titled “Establecer”npx @capgo/cli channel set [channelId] [appId]
[appId] es el ID de su aplicación, el formato se explica aquí.
Opcionalmente puedes dar:* --bundle [1.2.3] tu paquete de aplicaciones ya enviado a la nube, para vincularlo a un canal.
--latestobtiene la versión del paquete depackage.json:version, no se puede usar con--bundle.--state [ normal | default ]establece el estado del canal, puede sernormalodefault. Un canal debe serdefault.--downgradepermite que el canal envíe una versión anterior a los dispositivos.--no-downgradeno permite que el canal envíe una versión degradada a los dispositivos.--upgradepermite que el canal envíe una versión de actualización (principal) a los dispositivos.--no-upgradeno permite que el canal envíe una versión de actualización (principal) a los dispositivos.--iospermite que el canal envíe la versión a los dispositivos iOS.--no-iosno permite que el canal envíe la versión a los dispositivos iOS.--androidpermite que el canal envíe la versión a dispositivos Android.--no-androidno permite que el canal envíe la versión a dispositivos Android.--self-assignpermite que los dispositivos se autoasignen a este canal.--no-self-assignno permite que los dispositivos se autoasignen a este canal.--disable-auto-update STRATEGYDeshabilita la estrategia de actualización automática para este canal. Las opciones posibles son: mayor, menor, metadatos, ninguno.--apikey [key]API clave para vincular a su cuenta.
Deshabilitar la estrategia de actualizaciones
Section titled “Deshabilitar la estrategia de actualizaciones”Hay algunas formas de gestionar la desactivación de actualizaciones para versiones demasiado antiguas.
Capgo no puede actualizar el código nativo, por lo que no debería ser posible actualizar desde una versión con el código nativo antiguo a una versión con el código nativo actualizado.
Hay un par de formas de lograrlo.
Primero, la estrategia major. Impide una actualización de 0.0.0 -> 1.0.0. El mayor es el número resaltado (1.0.0 y 0.0.0).
En segundo lugar está la estrategia minor. Impide una actualización de 0.0.0 -> 1.1.0 o una actualización de 1.1.0 a 1.2.0.
TENGA EN CUENTA esta estrategia no impide una actualización de 0.1.0 -> 1.1.0
En tercer lugar, la estrategia patch. Se agregó a capgo como un modo muy estricto. No se recomienda su uso a menos que comprenda completamente cómo funciona.
Para que acepte una actualización se deben cumplir las siguientes condiciones:
- La versión principal es la misma entre la versión nueva y la antigua.
- El menor es el mismo entre la versión nueva y la antigua.
- El parche de la nueva versión es mayor que el parche de la versión anterior.
A continuación se muestra un ejemplo de en qué escenarios se permite o deniega la actualización.
- 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 ❌
Por último la estrategia más complicada. La estrategia metadata.
Primero debe saber que inicialmente, después de habilitarlo, las actualizaciones FALLARÁN ya que el canal carece de los metadatos necesarios.
Si al canal le faltan metadatos, verá un mensaje como este:

Si ve algo como esto, sabrá que debe ir al paquete actual del canal que falla y configurar los metadatos.
Primero, averigüe qué canal está fallando. Puedes hacerlo mirando la columna misconfigured
Luego vaya al canal que falla y haga clic en “Número de paquete”. Esto debería llevarlo a la página del paquete.

Una vez allí, complete el campo “Versión de actualización mínima”. Esto debería ser un semver.
Si el valor que pasas no es un semver obtendrás un error, pero si todo va correctamente deberías ver algo como esto:

Ahora bien, probablemente no quieras configurar estos datos manualmente cada vez que actualices. Afortunadamente, CLI evitará que envíes una actualización sin estos metadatos.

Para cargar correctamente un paquete cuando se utiliza la opción metadata, debe pasar --min-update-version con el semver válido. Algo como esto:

El --min-update-version no es la ÚNICA forma de lograr compatibilidad.
También existe el --auto-min-update-version. Así es como funciona.
Primero, echa un vistazo a la versión subida actualmente al canal. Comprueba la compatibilidad de la misma manera que lo haría el comando “compatibilidad de paquete”.
En segundo lugar, si la nueva versión es 100% compatible, reutiliza el min_update_version de la última versión del canal.
De lo contrario, establece min_update_version en el número de paquete de la versión recién cargada.
Siempre obtendrá información sobre cuál es min_update_version al utilizar esta opción. Se verá así:

Si la nueva versión no es compatible, debería verse así

Cifrado de extremo a extremo (sin confianza)
Section titled “Cifrado de extremo a extremo (sin confianza)”Capgo admite el cifrado de extremo a extremo, esto significa que su paquete (código) se cifra antes de enviarlo a la nube y descifrarlo en el dispositivo. Para eso, necesita generar un par de claves RSA; puede usar el siguiente comando para generarlo.
El sistema de cifrado es una combinación de RSA y AES, la clave RSA se utiliza para cifrar la clave AES y la clave AES se utiliza para cifrar el archivo.
Consulte a continuación para obtener más información sobre el sistema de cifrado.

Esquema de cifrado
Crea una clave para tu aplicación
Section titled “Crea una clave para tu aplicación”npx @capgo/cli key create
Opcionalmente, puede proporcionar: --force para sobrescribir la clave existente. Este comando creará para usted un par de claves en su aplicación y le pedirá que guarde la clave privada en un lugar seguro. Se recomienda no confirmar la clave privada y no compartirla con nadie.
Después de su prueba local, elimine la clave del archivo de configuración y agréguela en el paso CI con “guardar clave”
Guardar clave en la configuración de tu aplicación
Section titled “Guardar clave en la configuración de tu aplicación”npx @capgo/cli key save
Opcionalmente puedes dar:
--key [/path/to/my/public_key] la ruta de su archivo de clave pública.
--key-data [publicKey] los datos de clave pública, si desea utilizarlos en línea. Este comando es útil si siguió la recomendación y no confirmó la clave en la configuración de su aplicación.
Integración Ci
Section titled “Integración Ci”Para automatizar su trabajo, le recomiendo que haga que la acción GitHub haga el trabajo de enviar a nuestro servidor.
Nuestra aplicación de demostración
Section titled “Nuestra aplicación de demostración”GitHub - Cap-go/aplicación de demostración
No olvide configurar la variable de entorno CI con su clave API