Zum Hauptinhalt springen
Anleitung

Jede Pull-Anfrage in eine installierbare Vorschau verwandeln

Warten Sie nicht auf die TestFlight-Verarbeitung. Capgo PR-Vorschau-Anzeigen ermöglichen es QA, PMs und Stakeholdern, Funktionen auf realen Geräten in weniger als einer Minute zu testen.

Martin Donadieu

Martin Donadieu

Content-Marketing-Manager

Jede mobile Entwicklerteam hat das Problem gespürt: Eine Funktion ist für die Überprüfung bereit, aber es dauert Stunden, bis sie in die Hände der Stakeholder gelangt, weil man sich durch das TestFlight- oder Google Play Beta-Review-Labyrinth navigieren muss. Was Minuten dauern sollte, wird zu Stunden Warten, Installieren und Beta-Builds verwalten.

Was wäre, wenn Ihre Produktions-App die neuesten Änderungen aus jeder Pull-Anfrage direkt auf das Gerät ziehen könnte, ohne dass es zu Neustarts oder Verzögerungen bei den App-Stores kommt?

Das ist

PR-Vorschau-Anzeigen PR-Vorschau-Anzeigen enable. Wenn ein Entwickler einen Pull-Request öffnet, erstellt ein GitHub-Action eine dedizierte Update-Kanal und veröffentlicht die Änderungen. Jeder mit der App installiert kann sich auf diesen Kanal umschalten, die Funktion testen und wieder zurück umschalten - alles ohne die App zu verlassen, die sie bereits haben.

Das TestFlight-Problem

Das traditionelle Workflow für die Testung von mobilen Funktionen sieht ungefähr so aus:

  1. Entwickler öffnet PR - Code ist bereit für die Überprüfung
  2. Warten auf TestFlight - 15-30 Minuten Verarbeitungszeit
  3. Finden und installieren - Tester suchen nach der richtigen Build
  4. Testen und wiederholen - Jeder Änderung bedeutet ein weiteres Warten

Dies schafft eine Engstelle. Die QA-Abteilung wird blockiert, während sie auf Builds wartet. Produktmanager können keine Funktionen schnell überprüfen. Entwickler verlieren den Kontext, während sie auf Feedback warten. Die Branche schätzt dies auf etwa 340 US-Dollar pro PR an verlorener Produktivität.

Wie PR-Vorschauen funktionieren

PR-Vorschauen nutzen das Capgo-Kanal-System, um pro-PR-Update-Streams zu erstellen. Hier ist der Ablauf:

  1. PR geöffnet oder aktualisiert - GitHub-Aktion auslöst
  2. Bundle hochgeladen - Ihre JS/CSS-Änderungen gehen in einen pro-PR-Kanal
  3. Kommentar gepostet - Tester erhalten Anweisungen im PR
  4. Instant-Testen - Wechseln Sie die Kanäle, testen, zurückwechseln

Keine neuen App-Installationen. Keine TestFlight-Verzögerungen. Das gleiche Produktions-App kann von verschiedenen Update-Kanälen ziehen.

Einrichten von PR-Vorschauen

Bevor Sie PR-Vorschauen implementieren können, muss Ihr Projekt mit Capgo Live Updates konfiguriert werden. Folgen Sie dem Capgo Schnellstartanleitung wenn Sie das noch nicht getan haben.

GitHub Actions Workflow

Erstellen .github/workflows/pr-preview.yml:

name: PR Preview
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - name: Setup Bun
        uses: oven-sh/setup-bun@v2

      - name: Install Dependencies
        run: bun install

      - name: Build
        run: bun run build

      # Create a channel named after your PR (may already exist on synchronize)
      - name: Create PR Channel
        id: create_channel
        continue-on-error: true
        run: bunx @capgo/cli@latest channel add pr-${{ github.event.pull_request.number }} --self-assign
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}

      # Upload the build to that channel
      - name: Upload to Capgo
        run: bunx @capgo/cli@latest bundle upload --channel pr-${{ github.event.pull_request.number }}
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}

      # Post a comment with testing instructions (only on PR open)
      - name: Comment on PR
        if: github.event.action == 'opened'
        uses: actions/github-script@v7
        with:
          script: |
            github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: ${{ github.event.pull_request.number }},
              body: '📱 **Test this PR on device:**\n\nOpen your app and switch to channel: `pr-${{ github.event.pull_request.number }}`\n\nUse the shake menu or call `setChannel()` from your app.'
            })

Der Schlüssel ist die --self-assign Flagge, wenn Sie den Kanal erstellen. Dies ermöglicht es Testern, sich auf den Kanal innerhalb der App umzuschalten, indem sie die setChannel() API

Einrichten von Capgo Token

  1. Gehen Sie zu Ihrem Capgo Dashboard
  2. Navigieren Sie zu Einstellungen > API Schlüssel
  3. Einen neuen Schlüssel mit __CAPGO_KEEP_0__ Berechtigungen erstellen all Rechte
  4. Hinzufügen als CAPGO_TOKEN im GitHub Repository-Secrets deiner Projekt

Wie Tester Kanäle wechseln

Es gibt zwei Möglichkeiten für Tester, auf einen PR-Kanal zu wechseln:

Option 1: Shake-Menü (Einfachste)

Das Shake-Menü mit Kanal-Selektor in deinem Capacitor Konfiguration aktivieren:

// capacitor.config.ts
const config: CapacitorConfig = {
  // ... your other config
  plugins: {
    CapacitorUpdater: {
      shakeMenu: true,
      allowShakeChannelSelector: true
    }
  }
};

Tester schütteln ihr Gerät, um das Debug-Menü zu öffnen, das eine Liste der verfügbaren Kanäle mit einer Suchleiste anzeigt. Sie finden ihren PR-Kanal (z.B. pr-123auf), tippen, um ihn auszuwählen, und die App lädt und aktualisiert sich automatisch. Wenn das Testen abgeschlossen ist, schütteln sie erneut und wechseln zurück in die Produktion.

Das Shake-Menü handhabt den gesamten Flow automatisch:

  1. Alle selbst-zuweisbaren Kanäle via listChannels()
  2. Anzeige von Kanälen mit Suchfunktion, um spezifische PRs zu finden
  3. Herunterladen der Aktualisierung nach Auswahl
  4. Wiederherstellungsanforderung mit den Optionen „Jetzt wiederherstellen“ / „Später“

Option 2: Benutzerdefinierter Kanal-Selektions-UI

Bauen Sie einen Kanalwechsler in Ihre App ein, der verfügbare PR-Kanäle auflistet und Testern ermöglicht, einen auszuwählen. Dies verwendet zwei Schlüssel-APIs:

  • listChannels() - Abrufen aller Kanäle mit Selbstzuweisung aktiviert
  • setChannel() - Wechseln Sie das Gerät auf den ausgewählten Kanal
import { CapacitorUpdater } from '@capgo/capacitor-updater';

// Get all available channels (including PR channels)
async function getAvailableChannels() {
  const { channels } = await CapacitorUpdater.listChannels();

  // Filter to show only PR channels
  const prChannels = channels.filter(c => c.name.startsWith('pr-'));

  return prChannels;
}

// Switch to a specific PR channel
async function switchToChannel(channelName: string) {
  await CapacitorUpdater.setChannel({
    channel: channelName,
    triggerAutoUpdate: true  // Immediately check for updates
  });
}

// Return to production
async function switchBackToProduction() {
  await CapacitorUpdater.unsetChannel({});
}

// Get current channel
async function getCurrentChannel() {
  const { channel } = await CapacitorUpdater.getChannel();
  return channel;
}

Mithilfe dieser Bausteine können Sie eine einfache UI erstellen:

// Example: List PR channels and let user select
const channels = await getAvailableChannels();
const current = await getCurrentChannel();

// Display channels in your UI
channels.forEach(channel => {
  console.log(`${channel.name} ${channel.name === current ? '(current)' : ''}`);
});

// When user selects a channel
await switchToChannel('pr-123');

Für ein vollständiges React-Beispiel, sehen Sie sich unseren Artikel zum Kanalwechsel an.

Sauberung von PR-Kanälen

Wenn ein PR verschmolzen oder geschlossen wird, möchten Sie den Kanal aufräumen. Fügen Sie einen anderen Workflow hinzu:

name: Cleanup PR Preview
on:
  pull_request:
    types: [closed]

jobs:
  cleanup:
    runs-on: ubuntu-latest
    steps:
      - name: Delete PR Channel
        run: bunx @capgo/cli@latest channel delete pr-${{ github.event.pull_request.number }}
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}

Dies entfernt den Kanal, wenn der PR geschlossen wird, und hält Ihre Liste der Kanäle sauber.

Versionenkompatibilität

PR-Vorschauen funktionieren nur, wenn das JavaScript-Bundle mit der installierten nativen Version kompatibel ist. Wenn Ihr PR nativ code Änderungen (neue Capacitor Plugins, iOS/Android-Modifikationen) enthält, benötigen die Tester ein neues natives Build.

Capgo überprüft automatisch die Versionenkompatibilität. Wenn ein PRs Bundle eine andere nativ Version als die installierte ansteuert, wird die Aktualisierung nicht angewendet. Dies verhindert Crashs von inkompatiblen code.

Für PRs, die nativ Änderungen erfordern, müssen Sie ein neues TestFlight/Play Store Build verteilen. PR-Vorschauen funktionieren am besten für JavaScript, CSS- und Asset-Änderungen, die keine nativen code berühren.

Wer sich von PR-Vorschauen profitiert

QA-Engineeure

  • Testen Sie Funktionen sofort, wenn PRs geöffnet werden
  • Wechseln Sie zwischen mehreren PRs ohne Neuinstallation
  • Überprüfen Sie Reparaturen und Rückschritte auf echten Geräten
  • Keine Wartezeit für TestFlight-Verarbeitung

Produktmanager

  • Überprüfen Sie Funktionen bevor sie integriert werden
  • Geben Sie Feedback direkt auf dem PR
  • Stellen Sie sicher, dass die Implementierung den Anforderungen entspricht
  • Verringern Sie die Zeit für die Überprüfung

Entwickler

  • Erhalten Sie schnellere Feedback auf Änderungen
  • Demo-Funktionen für Stakeholder sofort
  • Debuggen von Problemen mit bestimmten Benutzern
  • Weniger Zeit für die Verwaltung von Beta-Versionen

Vergleich: Traditionell vs. PR-Vorschau

Aspekt TestFlight/Beta Capgo Vorabansicht
Aufbauzeit 15-30 min <1 min
Wechseln von PRs 5+ min Reinstallierung 10 Sekunden
Setup-Komplexität App Store-Zugangsdaten Ein Workflow-File
Aufräumen Manuell Automatisch
Nativ code Änderungen Erforderlich Optional (JS nur)

Best Practices

  1. Nennen Sie Kanäle klar: Verwenden Sie pr-{number} Konvention für einfache Identifizierung
  2. Auto-Löschen: Lösen Sie immer Kanäle, wenn PRs schließen
  3. Beschränken Sie den Zugriff: Aktivieren Sie nur das Shake-Menü in Debug-/Staging-Builds
  4. Dokumentiere den Prozess: Füge Testanweisungen zu deinem Pull-Request-Vorlage hinzu
  5. Feihere Fehlern gegenüber: Überprüfe, ob die Kanal-Erstellung erfolgreich ist, bevor du Kommentare postest

Wann nicht PR-Vorschau verwenden

PR-Vorschauen sind für JavaScript/CSS-Änderungen vorgesehen. Wenn dein Pull-Request enthält:

  • Neue Capacitor-Plugins
  • iOS-native code-Änderungen
  • Android-native code-Änderungen
  • Abhängigkeitsaktualisierungen, die native Builds beeinflussen

Für diese Änderungen benötigst du traditionelle TestFlight/Play Store-Verteilung.

Kombinieren mit Channel Surfing

PR-Vorschauen funktionieren am besten, wenn sie mit Fernsehen von Kanälen kombiniert werden.Ihre App kann haben:

  • production - Stabile Releases für alle Benutzer
  • beta - Frühzugriff für Benutzer, die sich anmelden
  • pr-123 - Funktionen-Vorschauen für bestimmte PRs

Testern mit Produktionsbuilds können auf jeden PR-Kanal umschalten, die Funktion testen und dann wieder zurück umschalten - alles mit der gleichen installierten App.

Ressourcen

Zusammenfassung

PR-Vorschauen verändern, wie Ihre Team mobile Funktionen überprüft und testet. Anstatt auf die TestFlight-Verarbeitung zu warten und mehrere Beta-Builds zu verwalten, können Tester auf jede PR-Kanal in Sekunden wechseln, indem sie die App verwenden, die sie bereits installiert haben.

Die Einrichtung ist minimal - ein einziges GitHub Actions-Aufgaben-Workflow-Datei - und die Vorteile summieren sich über Ihr Team. Die QA bleibt unblockiert, Produktmanager überprüfen schneller und Entwickler erhalten schnellere Feedback.

Beginnen Sie damit, die Workflow in einem Repository hinzuzufügen und sehen Sie, wie es Ihre Überprüfungsprozess ändert.

Fortsetzen Sie von Turn Every Pull Request Into an Installable Preview

Wenn Sie "Turn Every Pull Request Into an Installable Preview" verwenden Turn Every Pull Request Into an Installable Preview um Kanalrouten und rollende Veröffentlichung zu planen, verbinden Sie es mit Channels Channels Channels für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, Beta-Testlösung für den Produktworkflow in der Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in der Versionziel-Lösung.

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 vorliegt. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Los geht's jetzt

Aktuelle Beiträge aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um eine echte professionelle Mobilanwendung zu erstellen.