Zum Inhalt springen

Geräte

Geräte stellen einzelne Installationen Ihrer App dar, die von Capgo verwaltet werden. Die Geräteübersicht API ermöglicht es Ihnen, Geräte zu verfolgen und zu verwalten, einschließlich ihrer Pakete (Versionen), Kanäle und Updatestatus.

Jedes Gerät hat eindeutige Merkmale und Zustände:

  • Plattform: iOS, Android oder Electron
  • Bündel (Version): Aktuelles Bündel (Version) und native Buildversion
  • Umgebung: Produktion oder Entwicklung, Emulator oder physisches Gerät
  • Kanal: Aktuelle Updatekanalzuweisung
  • Benutzerdefinierter ID: Optionaler Identifier für Ihre eigenen Trackingzwecke
  1. Bundle-(Version)-Tracking: Überwachen Sie die Verbreitung von Gerätebündeln (Versionen), um sicherzustellen, dass die Aktualisierung aufgenommen wird
  2. Kanalverwaltung: Zuweisen Sie Geräte an die entsprechenden Kanäle basierend auf den Bedürfnissen der Tests
  3. Umweltbewusstsein: Handhaben Sie die verschiedenen Umgebungen (prod/dev/emulator) entsprechend
  4. Benutzerdefinierte Identifizierung: Verwenden Sie benutzerdefinierte IDs, um mit Ihren bestehenden Systemen zu integrieren

https://api.capgo.app/device/

Ein Gerät mit einer bestimmten Paketversion oder einem Kanal verbinden.

interface DeviceLink {
app_id: string
device_id: string
version_id?: string // bundle (version) name
channel?: string // channel name
}
Terminalfenster
curl -X POST \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"device_id": "device_456",
"channel": "beta"
}' \
https://api.capgo.app/device/
{
"status": "ok"
}

https://api.capgo.app/device/

Gerätendaten abrufen. Verwendet eine Cursor-basierte Paginierung für eine effiziente Abfrage großer Geräte-Listen.

  • app_id: Erforderlich. Die ID Ihres Apps
  • device_id: Optional. Spezifische Geräte-ID zum Abrufen eines einzelnen Geräts
  • cursor: Optional. Cursor aus der vorherigen Antwort für Paginierung
  • limit: Optional. Anzahl der Geräte pro Seite (Standard: 50)
Terminalfenster
# Get all devices (first page)
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=app_123"
# Get specific device
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=app_123&device_id=device_456"
# Get next page using cursor
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=app_123&cursor=2024-01-01T00:00:00Z|device_456"

Wenn Sie mehrere Geräte (kein device_id Parameter) anfordern:

interface DeviceListResponse {
data: Device[];
nextCursor?: string; // Pass this as 'cursor' param to get next page
hasMore: boolean; // true if more pages available
}
interface Device {
updated_at: string;
device_id: string;
custom_id: string;
version?: number; // bundle (version) id
version_name: string | null; // bundle (version) name
channel?: string;
app_id: string;
platform: "ios" | "android" | "electron";
plugin_version: string;
os_version: string;
version_build: string;
is_prod: boolean;
is_emulator: boolean;
key_id: string | null; // First 4 chars of encryption key (e.g., "MIIB")
}

Wenn Sie ein bestimmtes Gerät mit device_id Parameter anfordern, wird das Geräteobjekt direkt zurückgegeben:

interface Device {
updated_at: string;
device_id: string;
custom_id: string;
version?: number; // bundle (version) id
version_name: string | null; // bundle (version) name
channel?: string;
app_id: string;
platform: "ios" | "android" | "electron";
plugin_version: string;
os_version: string;
version_build: string;
is_prod: boolean;
is_emulator: boolean;
key_id: string | null; // First 4 chars of encryption key (e.g., "MIIB")
}
{
"data": [
{
"device_id": "device_456",
"custom_id": "test-device-1",
"version": 1,
"version_name": "1.0.0",
"app_id": "app_123",
"platform": "ios",
"plugin_version": "5.0.0",
"os_version": "17.0",
"version_build": "1",
"is_prod": true,
"is_emulator": false,
"updated_at": "2024-01-01T00:00:00Z"
}
],
"nextCursor": "2024-01-01T00:00:00Z|device_456",
"hasMore": true
}
{
"device_id": "device_456",
"custom_id": "test-device-1",
"version": 1,
"version_name": "1.0.0",
"app_id": "app_123",
"platform": "ios",
"plugin_version": "5.0.0",
"os_version": "17.0",
"version_build": "1",
"is_prod": true,
"is_emulator": false,
"updated_at": "2024-01-01T00:00:00Z",
"channel": "production"
}

https://api.capgo.app/device/

Gerät löschen

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

Gemeinsame Fehler-Szenarien und ihre Antworten:

// Device not found
{
"error": "Device not found",
"status": "KO"
}
// Invalid bundle (version)
{
"error": "Version not found",
"status": "KO"
}
// Invalid channel
{
"error": "Channel not found",
"status": "KO"
}
// Permission denied
{
"error": "Insufficient permissions to manage devices",
"status": "KO"
}
  1. Registrierung von Beta-Geräten
{
"app_id": "app_123",
"device_id": "device_456",
"channel": "beta"
}
  1. Version überschreiben
{
"app_id": "app_123",
"device_id": "device_456",
"version_id": "1.1.0"
}
  1. Zurücksetzen auf die Standardkanal
// Use DELETE endpoint to remove overrides
  1. Überwachung: Regelmäßig den Gerätestatus und die Bundle (Version) -Verteilung überprüfen
  2. Testen: Benutzerdefinierte IDs verwenden, um Geräte leicht identifizieren zu können
  3. Fehlersuche: Geräteaktualisierungen und Kanalzuweisungen verfolgen
  4. Native Versionenverwaltung: Native-App-Versionen überprüfen, um die Kompatibilität sicherzustellen

Wenn Sie Capgo verwenden Geräte um das Kanalrouting und die rollierende Veröffentlichung zu planen, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in Versionziel-Lösung.