Passer à la navigation

Appareils

Devices represent individual installations of your app that are managed by Capgo. The Devices API allows you to track and manage devices, including their bundles (versions), channels, and update status.

Chaque appareil a des caractéristiques et des états uniques :

  • Plateforme: iOS, Android ou Electron
  • Bundle (version): Version actuelle du bundle (version) et version de build native
  • Environnement: Production ou développement, émulateur ou appareil physique
  • Chaîne: Affectation de la chaîne d'actualisation actuelle
  • ID personnalisé: Identifiant optionnel pour vos propres besoins de suivi
  1. Suivi de l'ensemble (version): Suivre l'adoption de l'ensemble (version) du dispositif pour vous assurer de l'adoption des mises à jour
  2. Gestion de la chaîne: Affecter les appareils aux chaînes appropriées en fonction de vos besoins de test
  3. Conscience de l'environnementGérer différents environnements (prod/dev/emulateur) de manière appropriée
  4. Identification personnaliséeGérer les identifiants personnalisés pour intégrer avec vos systèmes existants

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

Associer un appareil à une version spécifique ou à un canal.

interface DeviceLink {
app_id: string
device_id: string
version_id?: string // bundle (version) name
channel?: string // channel name
}
Fenêtre de terminal
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/

Récupérer les informations de l'appareil. Utilise la pagination basée sur le curseur pour une récupération efficace de grandes listes d'appareils.

  • app_id: Obligatoire. L'ID de votre application
  • device_id: Obligatoire. ID de l'appareil spécifique pour récupérer un appareil unique
  • cursor: Obligatoire. Curseur de la réponse précédente pour la pagination
  • limit: Obligatoire. Nombre d'appareils par page (par défaut : 50)
Fenêtre de terminal
# 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"

Lors de la demande de plusieurs appareils (sans device_id paramètre):

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

Lors de la demande d'un appareil spécifique avec device_id paramètre, renvoie l'objet appareil directement :

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/

Délier un appareil de son canal de remplacement. Cela réinitialise l'appareil pour utiliser son canal par défaut.

Vous ne pouvez pas supprimer un appareil avec cet endpoint, il n'affecte que le canal de remplacement.

Paramètres de requête
interface Device {
device_id: string
app_id: string
}

Copier dans le presse-papier

Exemple de requête
Fenêtre de terminal
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"
}

Scénarios d'erreurs courants et leurs réponses :

// 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. Inscription de périphérique en version bêta
{
"app_id": "app_123",
"device_id": "device_456",
"channel": "beta"
}
  1. Version de remplacement
{
"app_id": "app_123",
"device_id": "device_456",
"version_id": "1.1.0"
}
  1. Réinitialiser à la chaîne par défaut
// Use DELETE endpoint to remove overrides
  1. SurveillanceVérifiez régulièrement l'état des appareils et la distribution du paquet (version)
  2. TestUtilisez des ID personnalisés pour identifier facilement les appareils de test
  3. Dépannage: Suivre les mises à jour du dispositif et les affectations de canal
  4. Contrôle de version natif: Surveiller les versions d'applications natives pour s'assurer de la compatibilité

Si vous utilisez Appareils pour planifier la mise en route des canaux et la mise en production étape par étape, connectez-le avec Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Solution de test bêta pour le flux de travail du produit dans Solution de test bêta, et Solution de ciblage de version pour le flux de travail du produit dans Solution de ciblage de version.