Zum Inhalt springen

Kanäle

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

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: Angeben, welches Bündel (Version) die Benutzer erhalten
  • Plattformziel: Ziehen Sie bestimmte Plattformen (iOS/Android/Electron) an
  • Update-Politik: Kontrollieren Sie, wie Updates geliefert werden
  • Gerätebeschränkungen: Verwalten Sie, welche Geräte Zugriff auf Updates haben
  • public: Als Standardkanal für neue Geräte festlegen
  • : Verhindere Updates, wenn die Geräte-App-Version neuere ist als die im Kanal verfügbare Update-Paket (Version) (z.B. Gerät ist auf App-Version 1.2.3, aber Kanal hat Update-Paket (Version) 1.2.2): Steuere das Update-Verhalten („major“, „minor“, „version_number“, „none“)
  • : Aktiviere/Deaktiviere für bestimmte Plattformen (iOS, Android, Electron): Lasse Geräten ihren Kanal selbst festlegen
  • __CAPGO_KEEP_0____CAPGO_KEEP_0__
  • __CAPGO_KEEP_0____CAPGO_KEEP_0__
  • emulatoren_zulassen: Updates auf Emulatoren-Geräten zulassen
  • entwicklungsbuilds_zulassen: Updates auf Entwicklungsbuilds zulassen
  1. Testkanal: Für interne Validierung einen Testkanal aufrechterhalten
  2. Phasenweise Bereitstellung: Mehrere Kanäle für die schrittweise Bereitstellung von Updates verwenden
  3. Plattformtrennung: Wenn erforderlich, separate Kanäle für iOS, Android und Electron erstellen
  4. Paket (Version) Kontrolle: Verwenden Sie semantische Versionsnummerierung für klare Updatepfade

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

Erstellen oder aktualisieren Sie eine Kanalkonfiguration.

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
}
Terminalfenster
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: Erforderlich. Die ID Ihrer App
  • 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;
}

Im folgenden Antwortbeispiel 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/

Ein Kanal löschen. Beachten Sie, dass dies alle Geräte beeinflusst, die diesen Kanal verwenden.

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-Testversion
{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0-beta",
"public": false,
"allow_emulator": true,
"allow_dev": true
}
  1. Produktionsauslieferung
{
"app_id": "app_123",
"channel": "production",
"version": "1.2.0",
"public": true,
"disableAutoUpdate": "minor"
}
  1. Plattformspezifische Updates
{
"app_id": "app_123",
"channel": "ios-hotfix",
"version": "1.2.1",
"ios": true,
"android": false
}

Wenn Sie " Kanäle zum Planen von Kanalrouten und der schrittweisen Auslieferung verwenden und ihn mit " Kanäle für die Implementierungsdetails in Kanälen verbinden, " Kanäle für die Implementierungsdetails in Channels, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, Versionziel-Lösung für den Produktworkflow in 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.