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 einzigartige Merkmale und Zustände:

  • Plattform: iOS, Android oder Electron
  • Bundle (Version): Aktuelles Bundle (Version) und native Buildversion
  • Umgebung: Produktion oder Entwicklung, Emulator oder physischer Gerät
  • Kanal: Aktuelle Updatekanalzuweisung
  • Benutzerdefinierter ID: Optionaler Identifier für eigene Trackingzwecke
  1. Paket (Version) Tracking: Überwachen Sie die Akzeptanz von Geräten (Version) zur Gewährleistung einer Update-Aufnahme
  2. Kanalverwaltung: Zuteilen Sie Geräte an geeignete Kanäle basierend auf den Testbedürfnissen
  3. Umgebungsverwaltung: Behandeln Sie verschiedene 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 (Bundle) 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ätinformationen abrufen. Verwendet eine Cursor-basierte Paginierung für eine effiziente Abfrage großer Geräte Listen.

  • app_id: Pflichtfeld. 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"

Bei der Anforderung mehrerer Geräte (ohne device_id Parameter):

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 ein bestimmtes Gerät mit device_id Parameter angefordert wird, wird das Gerät direkt als Objekt 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/

Ein Gerät von seinem Kanal-Überschreibung trennen. Dies setzt das Gerät auf seinen Standardkanal zurück.

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"
}

Häufige Fehler 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 Standardkanal
// Use DELETE endpoint to remove overrides
  1. Überwachung: Regelmäßig überprüfen Sie den Gerätestatus und die Verteilung der Pakete (Versionen)
  2. Testen: Verwenden Sie benutzerdefinierte IDs, um Geräte leicht identifizieren zu können
  3. Fehlersuche: Verfolgen Sie Geräteaktualisierungen und Kanalzuweisungen
  4. Native Versionskontrolle: Überwachen Sie native App-Versionen, um die Kompatibilität sicherzustellen

Wenn Sie " Geräte" verwenden für die Planung der Kanalrouten und der rollierenden Einführung, verbinden Sie es mit __CAPGO_KEEP_0__ 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 das Produktworkflow in Beta-Testlösung, und Versionziel-Lösung