Saltar al contenido

Dispositivos

Los dispositivos representan instalaciones individuales de tu aplicación que son gestionadas por Capgo. La sección de dispositivos API te permite rastrear y gestionar dispositivos, incluyendo sus paquetes (versiones), canales y estado de actualización.

Cada dispositivo tiene características y estados únicos:

  • Plataforma: iOS, Android o Electron
  • Paquete (versión): Paquete actual (versión) y versión de compilación nativa
  • Entorno: Producción o desarrollo, emulador o dispositivo físico
  • Canal: Asignación de canal de actualización actual
  • ID personalizado: Identificador opcional para tus propios fines de seguimiento
  1. Seguimiento de paquete (versión): Supervisa la adopción del paquete de dispositivo (versión) para asegurarte de que se adopten las actualizaciones
  2. Gestión de canales: Asigna dispositivos a los canales adecuados según las necesidades de prueba
  3. Conciencia del entorno: Maneja diferentes entornos (prod/dev/emulator) de manera adecuada
  4. Identificación personalizada: Utiliza IDs personalizados para integrarte con tus sistemas existentes

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

Asociar un dispositivo a una versión específica o canal.

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

Obtener información del dispositivo. Utiliza la paginación basada en el cursor para la recuperación eficiente de listas de dispositivos grandes.

  • app_id: Obligatorio. El ID de tu aplicación
  • device_id: Opcional. ID de dispositivo específico para recuperar un dispositivo único
  • cursor: Opcional. Cursor de la respuesta anterior para la paginación
  • limit: Opcional. Número de dispositivos por página (por defecto: 50)
Ventana 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"

Cuando se solicitan varios dispositivos (sin device_id parámetro):

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

Cuando se solicita un dispositivo específico con device_id parámetro, devuelve el objeto del dispositivo directamente:

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/

Desvincular un dispositivo de su override de canal. Esto restaura el dispositivo a su canal predeterminado.

interface Device {
device_id: string
app_id: string
}
Ventana 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"
}

Escenarios de errores comunes y sus respuestas:

// 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. Registro de dispositivo de versión beta
{
"app_id": "app_123",
"device_id": "device_456",
"channel": "beta"
}
  1. Sobrescribir versión
{
"app_id": "app_123",
"device_id": "device_456",
"version_id": "1.1.0"
}
  1. Restablecer a canal predeterminado
// Use DELETE endpoint to remove overrides
  1. Monitoreo: Revisa regularmente el estado del dispositivo y la distribución de la versión del paquete
  2. Pruebas: Utiliza IDs personalizados para identificar dispositivos de prueba de manera fácil
  3. Solución de problemas: Rastrea actualizaciones de dispositivos y asignaciones de canales
  4. Control de versiones nativas: Monitorea versiones de aplicaciones nativas para asegurar la compatibilidad

Si estás utilizando Dispositivos para planificar la ruta de canal y el lanzamiento en etapas, conecta con Canales para los detalles de implementación en Canales, Canales para los detalles de implementación en Canales, Canales para los detalles de implementación en Canales, Solución de Pruebas Beta para el flujo de trabajo del producto en Solución de Pruebas Beta, y Solución de Enfoque de Versión para el flujo de trabajo del producto en Solución de Enfoque de Versión.