Zum Hauptinhalt springen

Beta-Testing

Sende Web-Änderungen an Beta-Tester, ohne einen neuen TestFlight-Build zu erstellen

Tester installieren deine App nur einmal. Danach geht jede JavaScript-, HTML- oder CSS-Änderung an einen Beta-Channel, dem sie in der App beigetreten sind, und wird beim nächsten Update-Check übernommen. Änderungen am nativen code laufen weiterhin über TestFlight oder einen Play-Testing-Track.

Tester opten direkt in der App ein

Erlaube Self-Assignment auf einem Channel mit --self-assign. Deine App listet Channels mit listChannels() auf und wechselt das Gerät mit setChannel(), sodass Tester die Beta einfach über ein Settings-Menü beitreten können.

setChannel()-Referenz

Geräte über die Console pinnen

Setze einen Device Override in der Capgo Console, um das Telefon eines einzelnen Testers auf einen Channel zu legen, ohne die App zu ändern. Overrides werden 90 Tage nach der letzten Änderung automatisch entfernt.

Device Overrides

Build per QR code teilen

Aktiviere einmalig die Previews für die App. Danach generiert get-qr oder --qr-preview beim Upload einen QR code sowie Preview-Links für ein Bundle oder einen Channel, die du direkt in deinem QA-Thread teilen kannst.

get-qr-Referenz

TestFlight ist für native Änderungen nötig

Live Update ändert JavaScript, HTML, CSS und Assets. Wenn du ein Plugin hinzufügst oder native code änderst, sende einen neuen TestFlight- oder Play-Testing-Build und iteriere dann einfach weiter mit Channels.

Was einen Native Build erfordert

TestFlight und Capgo Channels haben andere Aufgaben

  • Einen neuen Build an Tester ausliefern

    TestFlight / Play Testing
    Builden, signen, uploaden und auf Store-Processing warten
    Capgo Beta Channel
    Ein Bundle mit dem CLI hochladen. Tester erhalten es beim nächsten Update-Check
  • Einen Tester hinzufügen

    TestFlight / Play Testing
    Lade sie in App Store Connect oder der Play Console ein
    Capgo Beta-Channel
    Sie treten dem Channel über deine App bei oder du setzt einen Device Override
  • Einen Tester auf einen anderen Build verschieben

    TestFlight / Play testing
    Einen anderen Build installieren
    Capgo Beta-Channel
    Channel in der App mit setChannel() wechseln
  • Native code und Plugin-Änderungen

    TestFlight / Play testing
    Ja
    Capgo Beta-Channel
    Nein, eine neue Binary ausliefern

Tester installieren die App einmalig über TestFlight, einen Play-Testing-Track oder den Store. Danach übernehmen Channels die Änderungen auf der Web-Ebene. Was einen Native Build erfordert

So funktioniert es

So führen QA-Teams Betas mit Capgo durch

Ein installierter Build, ein Channel für Tester und ein CLI Upload pro Änderung. Alle Befehle stammen aus der Capgo Doku.

  1. Einen Beta-Channel für Tester erstellen

    Mit Self-assignment wechselt das Gerät automatisch in diesen Channel. Deaktiviere dies für deinen Production-Channel.

    npx @capgo/cli@latest channel add beta com.example.app --self-assign
    Channel-Docs
  2. Füge deiner App einen „Beta beitreten“-Switch hinzu

    setChannel() fragt Capgo, ob der Channel Self-Assignment erlaubt, und speichert dies auf dem Device. triggerAutoUpdate startet sofort einen Update-Check.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    // Join beta and check for its bundle now
    await CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true })
    
    // Leave beta and go back to the default channel
    await CapacitorUpdater.unsetChannel({ triggerAutoUpdate: true })
    setChannel()-Referenz
  3. Jede Änderung in die Beta hochladen

    Aktiviere Previews einmalig. Danach drucke bei jedem Upload einen QR code, damit Tester und Reviewer das neue Bundle öffnen können.

    # once
    npx @capgo/cli@latest app set com.example.app --preview
    # every change
    npx @capgo/cli@latest bundle upload --channel beta --qr-preview
    get-qr-Referenz
  4. Promote, was QA bestanden hat

    Verknüpfe das getestete Bundle mit Production oder rolle es zuerst für einen Teil der Production-Devices aus. Tester bleiben in der Beta, bis sie sie verlassen.

    npx @capgo/cli@latest channel set production com.example.app \
      --bundle 1.4.2
    # or roll it out to 10% of production first
    npx @capgo/cli@latest channel set production com.example.app \
      --rollout-bundle 1.4.2 --rollout-percentage 10 --rollout-enable
    Docs zu Progressive Rollouts

Wer nutzt Beta-Channels?

Interne QA

Die QA nutzt einen installierten Build und wechselt zwischen QA-, Beta- und Feature-Channels, statt bei jeder JS-Änderung neu zu installieren.

Opt-in Beta-User

Füge einen „Beta beitreten“-Switch hinzu, der setChannel() aufruft. Wer die Beta verlässt, nutzt unsetChannel() und kehrt zum Default-Channel zurück.

Stakeholder-Reviews

Sende einen QR code via get-qr, damit Product Owner die Vorschau eines bestimmten Bundles oder Channels öffnen können.

Mit Capacitor gebaute Apps

Community-Apps benötigen ein vorsichtiges Feature-Rollout

Consumer-Apps mit hoher Nutzerzahl können Game-, Learning- oder Forecast-Flows mit einer geschlossenen Testergruppe validieren, bevor alle User das neue Erlebnis erhalten.

lichess • Free Online Chess App-Icon SPIELBRETT

lichess • Kostenloses Online-Schach

Große Community-App, bei der Turniere, Analysen und Social-Features eine sorgfältige Validierung erfordern.

Google Play-Installationen
11,3 Mio.
Store-Bewertung
4.3
StudySmarter - Schul- & Uni-App-Icon BILDUNG

StudySmarter - Schule & Uni

Bildungs-Workflows, bei denen Onboarding- und Übungsänderungen vor dem Release geprüft werden sollten.

Google Play-Installationen
6,5 Mio.
Store-Bewertung
4.8
Windy.com - Wettervorhersage App-Icon WETTER

Windy.com – Wettervorhersage

Vorhersage- und Karteninteraktionen, bei denen Produktänderungen vor dem Rollout abgesichert sein müssen.

Google Play-Installationen
32,9 Mio.
Store-Bewertung
4.7

Kundenstimmen

Das sagen Teams, die mit Capgo deployen

5.0/5 von Entwicklerteams bewertet 9,400+ Teams Bewertungen lesen

Nate van Jole

CTO, Privat

„Das Setup war in weniger als einem Tag erledigt. Mit Channel-basierten Rollouts kann ich erst auf meinem eigenen Gerät testen, bevor etwas bei den Production-Usern ankommt.“

no-tone @ Webincode

Entwickler, Webincode

„Geräte-IDs zu bestimmten Gruppen hinzuzufügen und Änderungen nur an diese Gruppen zu pushen, ist ein echter Gamechanger.“

Porträt von Michael Haberler

Michael Haberler

nethead emeritors

„Tolle Arbeit am Updater-Plugin. Bei mir läuft es einwandfrei, und Live Updates sind ein echter Beschleuniger für schnelle Testzyklen.“

FAQ

Fragen von QA- und Produktteams

Kurze Antworten zu Testern, Builds und was weiterhin TestFlight benötigt.

Kann Capgo TestFlight oder Play Internal Testing ersetzen?

Nur für Änderungen in der Web-Layer. Tester installieren deine App einmal über TestFlight, einen Play-Testing-Track oder den Store. Danach erreichen JavaScript-, HTML-, CSS- und Asset-Änderungen sie über einen Channel. Ein neues Plugin, ein Upgrade von Capacitor oder Änderungen an der nativen code- oder Capacitor-Config brauchen ein neues Binary.

Was einen Native Build erfordert

Wie tritt ein Tester der Beta bei oder verlässt sie?

Aktiviere Self-Assignment für den Beta-Channel und rufe dann `setChannel({ channel: 'beta' })` aus einem Screen deiner App auf. Capgo prüft, ob der Channel das erlaubt, und das Gerät speichert die Auswahl. `unsetChannel()` schickt das Gerät zurück auf den Default-Channel. Dem Default-Channel selbst kann man mit `setChannel()` nicht beitreten.

setChannel()-Referenz

Können wir das Handy eines Testers steuern, ohne die App zu ändern?

Ja. Öffne das Gerät in der Capgo Console und setze einen Channel Override. Es kann bis zu 2 Minuten dauern, bis dies alle Edge-Server erreicht; der Override wird 90 Tage nach der letzten Setzung entfernt. Channels, die in der App via setChannel() gewählt wurden, erscheinen nicht in dieser Liste.

Device Overrides

Wie testen wir einen neuen Native Build, ohne dass ein altes live update darüber liegt?

Erhöhe CapacitorUpdater.version für jeden Native Build. Mit den Standardeinstellungen werden Bundles, die für den älteren Build heruntergeladen wurden, entfernt, sobald der neuere installiert ist. Du kannst Updates für Development Builds und Emulatoren im Channel auch deaktivieren.

Native Builds ohne Live Updates testen

Was passiert, wenn ein Beta Bundle beim Start abstürzt?

Rufe notifyAppReady() auf, sobald deine App geladen ist. Wenn ein neues Bundle dies nicht innerhalb von 10 Sekunden tut, markiert das Gerät den Vorgang als fehlgeschlagen und kehrt zum vorherigen funktionierenden Bundle zurück.

notifyAppReady() und automatischer Rollback

Richte einen Beta Channel für deine App ein

Erstelle einen Channel für Tester, füge den Switch hinzu und sende dein erstes Bundle während der 14-tägigen kostenlosen Testphase. Keine Kreditkarte erforderlich.