Zum Hauptinhalt springen
Alternativen

How to send specific update to one user or a group

Erlassen Sie Ihren Benutzer die Beta-Version ohne die Notwendigkeit von TestFlight oder dem Google-Beta-Prozess, fügen Sie einfach einen Button in Ihrer Ionic-App hinzu, und sie sind fertig!

Artikelcredits

Martin Donadieu

Schreiber

Valeria

Rezensent

Jordan

Redakteur

How to send specific update to one user or a group

Vorwort

Wenn Sie mit dem Update-System von Capgo beginnen, wie ich es für meine Apps getan habe, werden Sie das Gefühl entwickeln, “Was wenn ich mehr will?”

Mir ging das auch so, aber da ich der Schöpfer von Capgo bin, konnte ich einen Blick darauf werfen!

Da alles Open-Source ist, haben Sie diese Macht auch:)

Der nächste Schmerz, den ich im Capacitor-App-Verteilungsprozess hatte, war es, andere Teammitglieder zum Testen der Updates zu bringen!

Mit TestFlight ist das Problem einfach, aber die Menschen in dein Team zu bringen und ihnen zu erklären, wie man es bekommt, ist zeitaufwändig!

Und natürlich muss jeder Mal, wenn Sie zu Apple senden, ein zufälliger Review-Prozess durch einen Bot abgelaufen sein, der 5 Minuten oder 5 Stunden dauern kann, Sie wissen nie.

Mir ist das viele Male mein Vortrag verzögert worden…

Und bei Google ist das noch schlimmer, die große Rätsel meines Lebens, eine Produktionsversion zu veröffentlichen dauert weniger als 2 Stunden, aber eine enge Beta zu veröffentlichen dauert 1–2 Tage.

Lösung

Um dies zu beheben, habe ich das Kanal-System in Capgo erstellt.

npx @capgo/cli@latest bundle upload -c production aktualisiert sich auf alle Benutzer (wenn der Produktionskanal auf Standard eingestellt ist)

Wenn Sie das tun npx @capgo/cli@latest bundle upload -c development dann landet die Version in einem anderen Kanal, dies kann in __CAPGO_KEEP_0__ automatisiert werden. GitHub-Aktion.

Sie haben dann zwei Möglichkeiten, um Benutzern Updates vom Kanal zu liefern

Superautomatische Methode

Diese kann nützlich sein, wenn Sie keinen eigenen Backend-Service für die Kanal-Einstellung erstellen möchten, dies ist schnell umzusetzen.

Mit diesem einen, benötigen Sie nur, dass Sie einem Ihrer Kanäle die Möglichkeit geben, selbst zu sein, um es zu setzen.

Zulassen, dass sich selbst einstellen in Capgo

Und fügen Sie dann dies in der code Ihres Ionic-Apps hinzu, für den besten Erfolg verwenden Sie dies am besten, nachdem der Benutzer auf einen Button wie „Registrieren für Beta“ geklickt hat.

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

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

Manuelle Methode

Dies kann für Ihre interne Team nützlich sein, dies ist schnell umzusetzen. Lassen Sie die Benutzer ihr Geräte-ID aus Ihrer App kopieren und senden Sie sie Ihnen manuell, dies code wird Ihnen helfen, es zu erhalten:

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

const deviceId = await CapacitorUpdater.getDeviceId()

Hüllen Sie eine Schaltfläche irgendwo in Ihrer App, oder zeigen Sie die Schaltfläche nur an verbundene Benutzer mit einem admin Beispielrolle

Gehe dann zum Web-App oder zur native App Capgo, melde dich als App-Admin an, wähle deine App, klicke auf die Geräteliste.

Dann geben Sie in der Suchleiste die Geräte-ID ein, klicken Sie auf das gefundenen Gerät und klicken Sie dann auf den Kanal-Link, wählen Sie die developmentÖffne die App erneut, warte 30 Sekunden und öffne sie dann erneut.

Er sollte Ihre Version erhalten.

Automatische Methode

Dies kann für Ihre Beta-Tester nützlich sein, dies ist länger umzusetzen.

Das Gleiche wie die manuelle Methode, Sie müssen die Geräte-ID erhalten

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

const deviceId = await CapacitorUpdater.getDeviceId()

Dieses Mal müssen Sie sie jedoch automatisch an Ihren Backend senden, ich lasse Ihnen entscheiden, wie Sie das tun.

I empfehle Ihnen, es in einer Datenbank zu speichern, das wird Ihr Leben später erleichtern.

Dann müssen Sie es in Ihrem Backend an Capgo Backend senden. Hier sind zwei code Beispiele:

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

Und senden Sie einfach Ihren device_id im Body an die bereitgestellte URL mit POST, um hinzuzufügen und DELETE-Methode, um zu löschen.

Nachdem dies konfiguriert ist, versuchen Sie, in Ihrer App einen Button hinzuzufügen, um sich dem Kanal anzumelden, und überprüfen Sie im Web-App, ob dies gesetzt wurde.

Sie können auch null um die Überschreibung zu entfernen

Wenn Sie programmatisch überprüfen müssen, welche Überschreibung auf einem Gerät gesetzt ist, können Sie auf der gleichen 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())

Fortsetzen Sie von How to send specific update to one user or a group

Wenn Sie verwenden How to send specific update to one user or a group um Kanalrouting und eine geplante Rollout zu planen, verbinden Sie es mit Kanäle zur Implementierungsdetail in Kanäle Kanäle zur Implementierungsdetail in Kanäle Kanäle zur Implementierungsdetail in Kanäle Testlösung für Beta zur Produktworkflow in Testlösung für Beta Zielgruppenlösung für Versionen zur Produktworkflow in Zielgruppenlösung für Versionen

Live-Updates für Capacitor-Apps

Wenn ein Bug im Web-Schicht lebt, schicken Sie die Reparatur über Capgo anstatt Tage auf die Genehmigung der App-Stores zu warten. Die Benutzer erhalten das Update im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Menschliche Unterstützung von Martin

Los geht's jetzt

Neueste von unserem Blog

Capgo gibt Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobile App zu erstellen.