Vai al contenuto principale
Alternativi

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

Consentite agli utenti di provare la versione beta senza la necessità di TestFlight o del processo di beta di Google, aggiungendo semplicemente un pulsante nella vostra app Ionic e sono pronti!

Martin Donadieu

Martin Donadieu

Content Stratega

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

Premessa

Quando iniziate a godere del sistema di aggiornamento di Capgo, come faccio con le mie app, inizierete a sentire il desiderio di ‘Cosa se volessi di più?’

Anch'io ho avuto questo sentimento, ma poiché sono il creatore di Capgo, ho potuto dare un'occhiata!

Poiché tutto è open-source, avete anche voi questo potere :)

Il prossimo dolore che ho avuto nel processo di distribuzione dell'app Capacitor è stato quello di far testare gli aggiornamenti agli altri colleghi!

Con TestFlight, il problema è semplice, ma portare le persone nel tuo team e farle capire come ottenerlo è un processo lungo!

E naturalmente, ogni volta che invii a Apple, hai un processo di revisione casuale da parte di 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, questo è ancora peggio, il grande mistero della mia vita, rilasciare una versione di produzione richiede meno di 2 ore, ma rilasciare una beta vicina richiede 1-2 giorni.

Soluzione

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

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

Se fai npx @capgo/cli@latest bundle upload -c development allora la versione atterra su un canale diverso, questo può essere automatizzato in GitHub azione.

Poi hai 2 modi per far sì che gli utenti ricevano gli aggiornamenti dal canale

Via automatica super veloce

Questo può essere utile quando non desiderate creare il proprio backend per il canale impostato, è veloce da implementare.

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

Consentire l'impostazione self nel Capgo

E poi aggiungere questo nel code della vostra app Ionic, per un'esperienza ottimale, utilizzare questo dopo che l'utente clicca su un pulsante come 'registrati per la beta'

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

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

Via manuale

Questo può essere utile per il vostro team interno, è veloce da implementare. Consentire agli utenti di copiare il loro deviceID dall'app e inviarlo manualmente a voi, questo code vi aiuterà a ottenerlo:

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

const deviceId = await CapacitorUpdater.getDeviceId()

Nascondere un pulsante in qualche parte dell'app, o mostrare il pulsante solo agli utenti connessi con un admin ruolo, ad esempio.

Poi andare all'app Web o nativa Capgo, connettervi come amministratore dell'app, selezionare la vostra app, cliccare sulla lista dei dispositivi.

Poi inserire nella barra di ricerca il deviceID cliccare su quello trovato e poi cliccare sul collegamento del canale scegliere il developmentchiedere al vostro compagno di squadra di riaprire l'app di nuovo, attendere 30 sec e riaprire/chiuso.

Deve ricevere la tua versione.

Modalità automatica.

Questa può essere utile per i tuoi tester beta, è più lungo da implementare.

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, che faciliterà la tua vita in seguito.

Poi nel tuo backend devi inviarlo anche al backend Capgo. Ecco due code 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)
}

E invia solo il tuo device_id nel corpo della richiesta al URL di deploy con 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.

Potresti anche inviare null per rimuovere l'override

Se hai bisogno di verificare 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 staging, 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 testing beta per il flusso di lavoro del prodotto nella Soluzione di testing beta, e Soluzione di targeting della versione per il flusso di lavoro del prodotto nella 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.

Sostegno umano da Martin

Inizia subito

Ultimi articoli dal nostro Blog

Capgo vi dà le migliori informazioni che avete bisogno per creare un'app mobile veramente professionale.