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!

Créditos del artículo

Martin Donadieu

Escritor

Valeria

Revisor

Jordan

Editor

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

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?’

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

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

La siguiente molestia que obtuve en el proceso de distribución de la aplicación 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, publicar una versión de producción toma menos de 2 horas, pero publicar una versión de cierre beta toma 1-2 días.

Solución

Para solucionar esto, creé el sistema de canal en Capgo.

npx @capgo/cli@latest bundle upload -c production se actualizará a todos los usuarios (si el canal de producción está configurado como predeterminado)

Si haces npx @capgo/cli@latest bundle upload -c development entonces la versión llega a un canal diferente, esto se puede automatizar en la acción de GitHub.

Luego tienes 2 formas de permitir a los usuarios obtener actualizaciones desde el canal

Método super automático

Esto puede ser útil cuando no deseas crear tu propio backend para configurar los canales, es rápido de implementar.

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

Permitir autoconfiguración en Capgo

Y luego agrega esto en el code de tu aplicación de Ionic, para una mejor experiencia, utiliza esto después de que el usuario haga clic en un botón como ‘regístrate para la versión beta’

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

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

Método 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, esto 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 rol, por ejemplo.

Luego ve a la aplicación web o nativa Capgo, inicia sesión como administrador de la aplicación, selecciona tu aplicación, haz clic en la lista de dispositivos.

Luego introduce en la barra de búsqueda el dispositivoID haz clic en el encontrado y luego haz clic en el enlace de Canal elige la developmentpregúntale a tu compañero de equipo que abra la aplicación de nuevo, espere 30 segundos y abra/cierre.

Debería obtener tu versión.

Método automático

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

Lo mismo que el método manual, debes obtener el dispositivoID

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

const deviceId = await CapacitorUpdater.getDeviceId()

Pero esta vez debes enviarlo automáticamente a tu backend, te dejo que decidas cómo lo haces.

Te sugiero que lo guardes en una base de datos, que facilitará tu vida más adelante.

Luego en su backend tiene que enviarlo 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 solo envíe su 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, intente agregar un botón en su aplicación para optar a la canalización y verificar en la aplicación web si se ha establecido.

También puede enviar null para eliminar la sobrescritura

Si necesita verificar programáticamente qué sobrescritura está configurada en un dispositivo, puede 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())

Siga adelante desde Cómo enviar actualización específica a un usuario o un grupo

Si está utilizando Cómo enviar actualización específica a un usuario o un grupo para planificar la canalización de rutas y la implementación en etapas, conéctelo con Canales para los detalles de implementación en Canales Canales para los detalles de implementación en Canales 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 Créditos del artículo

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 por la aprobación de la tienda de aplicaciones. Los usuarios obtienen la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

soporte humano de Martin

Iniciar Ahora

Últimas noticias de nuestro Blog

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