Zum Hauptinhalt springen
Alternativen

Wie sendet man eine spezifische Aktualisierung an einen Benutzer oder einer Gruppe?

Ermöglichen Sie Ihren Benutzern, die Beta-Version ohne die Notwendigkeit von TestFlight oder dem Google-Beta-Prozess auszuprobieren. Fügen Sie einfach einen Button in Ihrer Ionic-App hinzu, und sie sind fertig!

Martin Donadieu

Martin Donadieu

Content Marketer

Wie sendet man eine spezifische Aktualisierung an einen Benutzer oder einer Gruppe?

Vorwort

Wenn Sie sich mit dem Aktualisierungssystem von Capgo vertraut machen, wie ich es bei meinen Apps getan habe, werden Sie das Gefühl entwickeln, 'Was wenn ich noch mehr will?'

Ich hatte das Gefühl auch, 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 :)

Die nächste Schmerzen, die ich in der Capacitor-App-Verteilungsprozess erlebe, ist, dass ich andere Teammitglieder bitten muss, die Updates zu testen!

Bei TestFlight ist die Angelegenheit einfach, aber es dauert viel Zeit, Leute in dein Team aufzunehmen und sie zu erklären, wie sie es bekommen können!

Und natürlich, jede Mal, wenn du es an Apple sendest, hast du ein zufälliges Bewertungsverfahren durch einen Bot, der 5 Minuten oder 5 Stunden brauchen kann, du weißt nie.

Ich habe viele Male meine Präsentation durch diesen Prozess verzögert...

Und bei Google ist es noch schlimmer, die große Rätsel meines Lebens, eine Produktionsversion zu veröffentlichen dauert weniger als 2 Stunden, aber eine nahe 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 wird auf alle Benutzer aktualisiert (wenn der Produktionskanal auf Standard gesetzt ist))

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

Dann hast du 2 Möglichkeiten, den Benutzern die Updates vom Kanal zu liefern.

Super automatische Wege

Dies kann nützlich sein, wenn Sie keinen eigenen Backend für den Kanal-Set erstellen möchten, dies ist schnell umzusetzen.

Mit diesem einen, müssen Sie nur eines Ihrer Kanäle, um selbst zu setzen, zulassen.

Zulassen Sie in Capgo selbst zu setzen.

Und dann fügen Sie dies in der code Ihres Ionic-Apps hinzu, für den besten Erfahrung, verwenden Sie dies nach dem Benutzer auf einen Button wie „Registrieren für Beta“ klickt.

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

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

Manueller Weg

Dies kann nützlich sein für Ihr internes Team, dies ist schnell umzusetzen. Zulassen Sie Benutzern, ihre Geräte-ID aus Ihrer App zu kopieren und sie Ihnen manuell zu senden, dieses code wird Ihnen helfen, es zu erhalten:

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

const deviceId = await CapacitorUpdater.getDeviceId()

Verbergen Sie einen Button irgendwo in Ihrer App, oder zeigen Sie den Button nur an verbundenen Benutzern mit einem admin Rolle, zum Beispiel.

Dann gehen Sie zur Web-App oder native App Capgo, melden Sie sich als App-Admin an, wählen Sie Ihre App, klicken Sie auf die Geräte-Liste.

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, bitten Sie Ihren Teamkollegen, den App wieder zu öffnen, warten Sie 30 Sekunden und öffnen Sie ihn wieder.

Er sollte Ihre Version erhalten.

Automatische Methode

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

Gleich wie die manuelle Methode, Sie müssen das GeräteID haben

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

const deviceId = await CapacitorUpdater.getDeviceId()

Aber diesmal müssen Sie es automatisch an Ihren Backend senden, ich lasse Ihnen entscheiden, wie Sie das tun.

Ich werde Ihnen nur empfehlen, es in einer Datenbank zu speichern, das wird Ihr Leben später erleichtern.

Dann müssen Sie es in Ihrem Backend an den 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 von ihm an die bereitgestellte URL mit POST, um hinzuzufügen und DELETE-Methode, um zu löschen.

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

Sie können auch senden null um zu übernehmen zu entfernen

Wenn Sie programmgesteuert überprüfen müssen, welche Übernahme auf einem Gerät gesetzt ist, können Sie dies 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())
Live Updates für Capacitor-Apps

Wenn ein Web-Schicht-Bug live ist, liefern Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung genehmigt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Los geht's

Neuestes aus unserem Blog

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