__CAPGO_KEEP_0__ - Live Updates für __CAPGO_KEEP_1__-Apps

Kanäle

Kanäle sind die zentrale Mechanismatik für die Verwaltung von App-Updates in Capgo. Sie ermöglichen es Ihnen, zu kontrollieren, wie und wann Ihre Benutzer Updates erhalten, was Funktionen wie A/B-Test, geplante Rollouts und plattform-spezifische Updates ermöglicht.

Ein Kanal stellt eine Verteilungsstrecke für Ihre App-Updates dar. Jeder Kanal kann mit spezifischen Regeln und Einschränkungen konfiguriert werden:

  • Bündel (Version) Kontrolle: Bestimmen Sie, welches Bündel (Version) die Benutzer erhalten
  • Plattformziel: Ziehen Sie bestimmte Plattformen (iOS/Android/Electron) an
  • Update-Politiken: Steuern Sie, wie Updates geliefert werden
  • Gerätebeschränkungen: Verwalten Sie, welche Geräte Zugriff auf Updates haben
  • öffentlich: Legen Sie den Kanal als Standardkanal für neue Geräte fest
  • disableAutoUpdateUnderNative: Verhindern Sie Updates, wenn die Version der native App auf dem Gerät neuer ist als die verfügbare Update-Paketversion im Kanal (z. B. Gerät auf native App-Version 1.2.3, aber Kanal hat Update-Paketversion 1.2.2)
  • disableAutoUpdate: Steuern Sie das Update-Verhalten (“major”, “minor”, “version_number”, “none”)
  • iOS/Android/Elektron: Aktivieren/Schalten für bestimmte Plattformen
  • allow_device_self_set: Lassen Sie Geräte ihren Kanal wählen
  • allow_emulator: Zulassen von Updates auf Emulatordaten
  • allow_dev: Zulassen von Updates auf Entwicklungsbuilds
  1. Testing Channel: Halten Sie einen Testkanal für interne Validierung bereit
  2. Stufenfähigkeit: Mehrere Kanäle verwenden, um die Aktualisierungsbereitstellung schrittweise zu implementieren
  3. Plattformtrennung: Trenne separate Kanäle für iOS, Android und Electron an, wenn erforderlich
  4. Bundle (Version) Kontrolle: Verwende semantische Versionsnummerierung für klare Aktualisierungswege

https://api.capgo.app/channel/

Kanal-Konfiguration erstellen oder aktualisieren.

type disable_update = "major" | "minor" | "version_number" | "none"
interface ChannelSet {
app_id: string
channel: string
version?: string // bundle (version) name
public?: boolean
disableAutoUpdateUnderNative?: boolean
disableAutoUpdate?: disable_update
ios?: boolean
android?: boolean
electron?: boolean
allow_device_self_set?: boolean
allow_emulator?: boolean
allow_dev?: boolean
}
Terminal-Fenster
curl -X POST \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0",
"public": false,
"disableAutoUpdate": "minor",
"ios": true,
"android": true,
"electron": true,
"allow_emulator": true
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

https://api.capgo.app/channel/

Kanalinformationen abrufen. Gibt 50 Kanäle pro Seite zurück.

  • app_id: Pflichtfeld. Die ID Ihres Apps
  • page: Optional. Seitennummer für die Paginierung
  • channel: Optional. Spezifischer Kanalname zum Abrufen
Terminalfenster
# Get all channels
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123"
# Get specific channel
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&channel=beta"
# Get next page
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&page=1"
interface Channel {
id: number;
created_at: string;
name: string;
app_id: string;
version: { // bundle (version) assigned to the channel
id: number,
name: string
};
created_by: string;
updated_at: string;
public: boolean;
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}

In der Antwort unten version bezieht sich auf das Bundle (Version), das dem Kanal zugewiesen ist.

{
"data": [
{
"id": 1,
"name": "production",
"app_id": "app_123",
"version": {
"id": 1,
"name": "1.0.0"
},
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z",
"created_by": "user_123",
"public": true,
"disableAutoUpdateUnderNative": false,
"disableAutoUpdate": false,
"allow_emulator": false,
"allow_dev": false
}
]
}

https://api.capgo.app/channel/

Löschen Sie einen Kanal. Beachten Sie, dass dies alle mit diesem Kanal verwendeten Geräte beeinflusst.

interface Channel {
channel: string
app_id: string
}
Terminalfenster
curl -X DELETE \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta"
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

Gemeinsame Fehlerfälle und ihre Antworten:

// Channel not found
{
"error": "Channel not found",
"status": "KO"
}
// Invalid bundle (version) format
{
"error": "Invalid version format. Use semantic versioning",
"status": "KO"
}
// Invalid update policy
{
"error": "Invalid disableAutoUpdate value",
"status": "KO"
}
// Permission denied
{
"error": "Insufficient permissions to manage channels",
"status": "KO"
}
  1. Beta-Testung
{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0-beta",
"public": false,
"allow_emulator": true,
"allow_dev": true
}
  1. Produktionsstart
{
"app_id": "app_123",
"channel": "production",
"version": "1.2.0",
"public": true,
"disableAutoUpdate": "minor"
}
  1. Plattform-spezifische Updates
{
"app_id": "app_123",
"channel": "ios-hotfix",
"version": "1.2.1",
"ios": true,
"android": false
}

Wenn Sie Channels verwenden Channels um Kanäle zu routen und eine rollierende Einführung zu planen, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanälen, Kanäle für die Implementierungsdetails in Kanälen, Beta-Testlösung für den Produktworkflow in der Beta-Testlösung, Versionziel-Lösung für den Produktworkflow in der Versionziel-Lösung, und Capgo Umgebungsbest Practices: Staging mit einem Mobile-App-ID für den praktischen Kontext in Capgo Umgebungsbest Practices: Staging mit einem Mobile-App-ID.