Introducción
Cuando comiences a disfrutar del sistema de actualizaciones de Capgo, como yo con mis aplicaciones, empezarás a sentir el deseo de “¿Qué si quiero más?”
Yo también sentí ese deseo, pero como soy el creador de Capgo, pude echar un vistazo!
Como todo es de código abierto, tú también tienes ese poder :)
La siguiente molestia que tuve en el proceso de distribución de aplicaciones de Capacitor fue hacer que otros compañeros de equipo prueben las actualizaciones!
Con TestFlight, el problema es simple, pero traer a personas a tu equipo y hacer que entiendan cómo obtenerlo es un proceso que consume tiempo!
Y, por supuesto, cada vez que envías a Apple tienes un proceso de revisión aleatorio por parte de un bot que puede tomar 5 minutos o 5 horas, nunca sabes.
Me retrasé muchas veces con mi presentación debido a esto…
Y para Google es incluso peor, el gran misterio de mi vida, lanzar una versión de producción toma menos de 2 horas, pero lanzar una beta cercana toma 1-2 días.
Solución
Para solucionar esto, creé el sistema de canales en Capgo.
npx @capgo/cli@latest bundle upload -c production actualizará a todos los usuarios (si el canal de producción está configurado como predeterminado)
If you do npx @capgo/cli@latest bundle upload -c development entonces la versión llegará a un canal diferente, esto se puede automatizar en acción GitHub.
Entonces tienes 2 formas de permitir a los usuarios obtener actualizaciones desde el canal
Modo automático super
Esto puede ser útil cuando no quieres crear tu propio backend para configurar los canales, esto es rápido de implementar.
Con eso, la única cosa que necesitas hacer es permitir que uno de tus canales sea autoconfigurable.

Y luego agrega esto en el code de tu aplicación Ionic, para una mejor experiencia, utiliza esto después de que el usuario haga clic en un botón como 'regístrate para la beta'
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })
Modo manual
Esto puede ser útil para tu equipo interno, esto es rápido de implementar. Permite a los usuarios copiar su dispositivoID desde tu aplicación y enviarlo a ti manualmente, este code te ayudará a obtenerlo:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Oculta un botón en algún lugar de tu aplicación, o muestra el botón solo a los usuarios conectados con un admin papel, por ejemplo.
Vaya a la aplicación web o nativa Capgo, conecte como administrador de la aplicación, seleccione su aplicación, haga clic en la lista de dispositivos.
Vaya a la barra de búsqueda y escriba el dispositivoID, haga clic en el encontrado y luego haga clic en el enlace de Canal, elija el developmentpregunte a su compañero de equipo que abra la aplicación nuevamente, espere 30 segundos y abra y cierre.
Debería obtener su versión.
Forma automática
Esto puede ser útil para sus probadores beta, esto es más largo de implementar.
Lo mismo que la forma manual, debe obtener el dispositivoID
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Pero esta vez debe enviarlo automáticamente a su backend, le dejo que decida cómo hacerlo.
Le sugiero que lo almacene en una base de datos, que facilitará su vida más adelante.
Vaya a su backend y envíelo a Capgo backend también. A continuación, se muestran dos code ejemplos:
NodeJS
import axios from 'axios'
await axios.post('https://api.capgo.app/device', {
app_id: 'YOUR_APP_ID',
device_id: 'DEVICE_ID',
channel: 'CHANNEL_NAME', // The name of the channel, or undefined if version_id provided
version_id: 'VERSION_NAME' // this is optional, if provide it will override the channel, that useful when you want to debug only one user.
}, {
headers: {
authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
}
})
Cloudflare
addEventListener('fetch', (event) => {
event.respondWith(
handleRequest(event.request).catch(
err => new Response(err.stack, { status: 500 })
)
)
})
async function handleRequest(request) {
const { pathname, method } = new URL(request.url)
const body = await request.json()
const newBody = JSON.stringify({
app_id: 'YOUR_APP_ID',
device_id: body.device_id,
channel: 'alpha'
})
const newUrl = new URL('https://api.capgo.app/device')
const options = {
headers: {
authorization: 'YOUR_API_KEY',
},
method: 'POST',
body: newBody
}
if (request.method === 'DELETE') {
// DELETE the channel link
options.method = 'DELETE'
return fetch(newUrl.toString(), options)
}
return fetch(newUrl.toString(), options)
}
Y simplemente envía tu dispositivo_id en el cuerpo de él a la URL desplegada con POST para agregar y el método DELETE para eliminar.
Después de esta configuración, intenta agregar un botón en tu aplicación para optar a la canalización y verificar en la aplicación web si se ha establecido.
También puedes enviar null para eliminar la sobrescritura
Si necesitas verificar programáticamente qué sobrescritura está configurada en un dispositivo, puedes obtener en la misma URL
import axios from 'axios'
const res = await axios.get('https://api.capgo.app/device?app_id=YOUR_APP_ID&device_id=DEVICE_ID', {
headers: {
authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
}
})
console.log('data', res.json())
Sigue adelante desde Cómo enviar una actualización específica a un usuario o un grupo
Si estás utilizando Cómo enviar una actualización específica a un usuario o un grupo para planificar la canalización de rutas y la implementación de un lanzamiento en etapas, conecta con Canalización para obtener detalles de implementación en Canalización, Canales para los detalles de implementación en Canales Canales para los detalles de implementación en Canales Solución de Pruebas Beta para el flujo de trabajo del producto en Solución de Pruebas Beta, y Solución de Enfoque en Versión para el flujo de trabajo del producto en Solución de Enfoque en Versión