Vai direttamente al contenuto principale
alternative

Come inviare un aggiornamento specifico a un utente o a un gruppo

Consente agli utenti di provare la versione beta senza la necessità di TestFlight o del processo di beta di Google, basta aggiungere un pulsante nell'app Ionic e loro sono pronti!

Martin Donadieu

Martin Donadieu

Content Marketer

Come inviare un aggiornamento specifico a un utente o a un gruppo

Prefazione

Quando inizierai a goderti il sistema di aggiornamento di Capgo, come faccio io per le mie app, inizierai a sentire “Cosa se volessi ancora di più?”

Anche io ho avuto questa sensazione, ma poiché sono il creatore di Capgo, ho potuto dare un'occhiata!

Poiché tutto è open-source, hai anche tu questo potere :)

La prossima fatica che ho incontrato nel processo di distribuzione dell'app Capacitor è far testare gli aggiornamenti agli altri membri dello staff!

Con TestFlight, il problema è semplice, ma portare persone nel tuo team e farle capire come ottenere l'aggiornamento è un processo lungo!

E naturalmente, ogni volta che invii a Apple hai un processo di revisione casuale effettuato da un bot che può durare 5 minuti o 5 ore, non lo sai mai!

Ho avuto molte volte la mia presentazione ritardata da questo…

E per Google è ancora peggio, il grande mistero della mia vita, rilasciare una versione di produzione richiede meno di 2 ore, ma rilasciare una beta chiusa richiede 1-2 giorni.

Soluzione

Per risolvere questo, ho creato il sistema dei canali in Capgo.

npx @capgo/cli@latest bundle upload -c production Aggiornerà tutti gli utenti (se il canale di produzione è impostato su default)

If tu fai così, allora la versione andrà su un canale diverso, questo può essere automatizzato in npx @capgo/cli@latest bundle upload -c development azione __CAPGO_KEEP_0__ GitHub action.

Modo automatico Super

Questo può essere utile quando non vuoi creare il tuo backend per impostare il canale, è veloce da implementare.

Con questo, l'unica cosa che devi fare è consentire a uno dei tuoi canali di essere self per impostare.

Consenti di impostare self in __CAPGO_KEEP_0__

E poi aggiungi questo nel Capgo della tua app Ionic, per un'esperienza migliore, utilizza questo dopo che l'utente clicca su un pulsante come “iscrivi per la beta”

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' })

Questo può essere utile per il tuo team interno, è veloce da implementare. Consenti agli utenti di copiare il loro deviceID dall'app e inviarlo a te manualmente, questo __CAPGO_KEEP_0__ ti aiuterà a ottenerlo:

This can be useful for your internal team, this is fast to implement. Allow users to copy their deviceID from your app and send it to you manually, this code will help you to get it:

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

const deviceId = await CapacitorUpdater.getDeviceId()

__CAPGO_KEEP_0__ admin Esempio di ruolo.

Poi vai alla app Web o all'app nativa Capgo, connettiti come amministratore dell'app, seleziona la tua app, clicca sulla lista dei dispositivi.

Poi inserisci nel campo di ricerca l'ID dispositivo, clicca su quello trovato e poi clicca sul link del canale, scegli il development, chiedi al tuo compagno di aprir l'app di nuovo, aspetta 30 sec e aprila.

Deve ottenere la tua versione.

Modalità automatica.

Questo può essere utile per i tuoi tester beta, ciò richiede più tempo per essere implementato.

Lo stesso della modalità manuale, devi ottenere l'ID dispositivo

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

const deviceId = await CapacitorUpdater.getDeviceId()

Ma questa volta devi inviarlo automaticamente al tuo backend, ti lascio decidere come farlo.

Ti suggerisco solo di memorizzarlo in una database, ciò faciliterà la tua vita in seguito.

Poi nel tuo backend devi inviarlo a Capgo backend anch'esso. Ecco due code esempi:

Esempi 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)
}

Invia semplicemente il tuo device_id nel corpo della richiesta al URL di deploy con metodo POST per aggiungere e DELETE per eliminare.

Dopo aver configurato, prova ad aggiungere un pulsante nella tua app per accedere al canale e controlla nella app web se è stato impostato.

Puoi anche inviare null per rimuovere l'override

Se hai bisogno di controllare in modo programmatico quale override è impostato su un dispositivo, puoi ottenere lo stesso 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())

Continua da Come inviare un aggiornamento specifico a un utente o un gruppo

Se stai utilizzando Come inviare un aggiornamento specifico a un utente o un gruppo per pianificare la routing del canale e la distribuzione in fase di testing, connettilo con Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Soluzione di Test Beta per il flusso di lavoro del prodotto in Soluzione di Test Beta, e Soluzione di Targeting della Versione per il flusso di lavoro del prodotto in Soluzione di Targeting della Versione.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile veramente professionale.