Saltar al contenido principal
alternativas

Cómo enviar una actualización específica a un usuario o un grupo

Permite a los usuarios probar la versión beta sin necesidad de TestFlight o el proceso de beta de Google, solo agregue un botón en su aplicación Ionic y listo!

Martín Donadieu

Martín Donadieu

Gerente de Contenido

Cómo enviar una actualización específica a un usuario o un grupo

Prefacio

Cuando comiences a disfrutar del sistema de actualizaciones de Capgo, como yo con mis aplicaciones, empezarás a sentir el sentimiento “¿Qué si quiero más?”

También lo sentí, pero como soy el creador de Capgo, pude echar un vistazo!

Dado que todo es de código abierto, también tienes esta capacidad :)

La siguiente molestia que obtuve en el proceso de distribución de aplicaciones de Capacitor es hacer que otros compañeros de equipo prueben las actualizaciones!

Con TestFlight, el problema es simple, pero llevar a las 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 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, esto 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 cerrada 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, then the version lands to a different channel, this can be automatized in __CAPGO_KEEP_0__ action npx @capgo/cli@latest bundle upload -c development Entonces, la versión se desplaza a un canal diferente, esto se puede automatizar en __CAPGO_KEEP_0__ acción GitHub action.

Entonces tienes 2 formas de permitir a los usuarios obtener actualizaciones del canal

Super automatic Way

Vía automática super

This can be useful when you don’t want to create your own backend for channel set, this is fast to implement.

Allow set self in Capgo

And then add this in the code of your Ionic app, for best experience, use this after the user clicks on a button like “register for beta”

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })

Con eso, la única cosa que debes hacer es permitir que uno de tus canales sea autoconfigurable.

Allow set self in code

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const deviceId = await CapacitorUpdater.getDeviceId()

Permitir configuración auto en __CAPGO_KEEP_0__ admin Ejemplo de rol.

Luego vaya a la aplicación web o nativa Capgo, conéctese como administrador de la aplicación, seleccione su aplicación, haga clic en la lista de dispositivos.

Luego ingrese el ID del dispositivo en la barra de búsqueda, haga clic en el dispositivo encontrado y luego haga clic en el enlace de Canal, elija el development, pida 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.

Método automático.

Esta puede ser útil para tus pruebas beta, esto es más largo de implementar.

Igual que el método manual, debe obtener el ID del dispositivo

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.

Luego en su backend debe enviarlo a Capgo backend también. A continuación, 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 ella a la URL desplegada con POST para agregar y el método DELETE para eliminar.

Después de configurado, intenta agregar un botón en tu aplicación para optar a la canal, y verifica en la aplicación web si eso 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 ruta de canal y la implementación de lanzamiento etapado, conecta con Canales para los detalles de implementación en Canales, Canales para el detalle de implementación en Canales, Canales para el detalle 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 de Versión para el flujo de trabajo del producto en Solución de Enfoque de Versión.

Actualizaciones en vivo para aplicaciones Capacitor

Cuando haya un error en la capa web, envíe la corrección a través de Capgo en lugar de esperar días a la aprobación de la tienda de aplicaciones. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

Empezar Ahora

Últimas noticias de nuestro Blog

Capgo le da las mejores pistas que necesita para crear una aplicación móvil verdaderamente profesional.