Adjunta uno o más archivos complementarios a una Build existente. Resulta útil para asociar recursos adicionales a una Build — como documentos de notas de versión, informes de pruebas, archivos dSYM para simbolización de crashes, archivos de mapping, capturas de pantalla o cualquier otro archivo que quieras tener disponible junto a la Build en Applivery.
Los archivos adjuntos son independientes del binario de la Build y no afectan a su instalación ni procesamiento. Se muestran en la vista de detalles de la Build en el panel de Applivery y son accesibles mediante la API.
La Build debe tener el estado processed antes de poder adjuntar archivos. Intentar adjuntar archivos a una Build que aún está en estado pending o in_progress devolverá un error 400.
Applivery proporciona dos APIs independientes para adjuntar archivos, cada una con una credencial de autenticación diferente.
Cómo elegir la API correcta
| Integrations API | Workspace API | |
|---|---|---|
| Diseñada para | Pipelines de CI/CD que adjuntan artefactos por app | Automatización a nivel de Workspace en varias Apps |
| Autenticación | App API Token (por app) | token de una cuenta de servicio (a nivel de Workspace) |
| URL base | https://upload.applivery.io |
https://upload.applivery.io |
| Contexto de app | Implícito — el token ya está vinculado a una App | Explícito — se requieren organizationId y applicationId en la ruta |
| Usuarios típicos | Scripts de CI que adjuntan informes de pruebas o dSYMs tras una Build | Platform engineers que gestionan artefactos de builds en varias Apps |
El acceso a las distintas APIs puede no estar disponible en tu plan actual. Consulta la disponibilidad en nuestra página de precios.
Integrations API
Usa este endpoint para adjuntar archivos dentro del ámbito de una sola app. La autenticación usa un App API Token, vinculado a la App específica.
Para crear un App API Token, consulta Autenticación de la API de Apps.
Endpoint
POST https://upload.applivery.io/v1/integrations/builds/{buildId}/files
Autenticación
Authorization: Bearer <your_app_token>
Formato de la petición
multipart/form-data
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
buildId |
String | Sí | El identificador único de la Build al que adjuntar el archivo. P. ej. 552ae3cfcb5abfc58d733b81. Devuelto por POST – Subir una Build y GET – Lista de Builds. |
Parámetros de cuerpo
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
file |
File | Sí | El archivo a adjuntar a la Build. Se acepta cualquier tipo de archivo. |
description |
String | No | Descripción legible del archivo adjunto. P. ej. Archivo dSYM para simbolización, Informe QA, PDF de notas de versión. |
Ejemplo de petición
curl 'https://upload.applivery.io/v1/integrations/builds/552ae3cfcb5abfc58d733b81/files' \
-X POST \
-H 'Authorization: Bearer YOUR_APP_TOKEN' \
-F 'file=@/path/to/report.zip' \
-F 'description=Automated test report'
Respuestas
Archivo adjuntado correctamente. La respuesta devuelve el objeto completo de la Build actualizada, incluyendo el array files con el archivo recién adjuntado.
{
"status": true,
"data": {
"id": "string",
"status": "processed",
"tags": ["string"],
"versionName": "string",
"application": "string",
"applicationInfo": {
"id": "string",
"name": "string",
"slug": "string",
"picture": "string"
},
"changelog": "string",
"info": {},
"size": 0,
"processTime": 0,
"queuedTime": 0,
"versionCode": "string",
"error": "string",
"errorCode": "string",
"os": "ios",
"buildPlatform": "string",
"deployer": {},
"uploadedBy": {},
"originalExtension": "string",
"storageProvider": {},
"files": [
{
"id": "string",
"type": "string",
"description": "string",
"file": {
"originalName": "string",
"mimetype": "string",
"size": 0,
"bucket": "string",
"key": "string",
"location": "string",
"region": "string",
"storageProviderId": "string",
"checksum": "string",
"updatedAt": "string",
"createdAt": "string"
}
}
],
"hasEmmJson": true,
"updatedAt": "string",
"createdAt": "string"
}
}
Build aún no procesada. Los archivos solo pueden adjuntarse a Builds con status: processed. Reintenta cuando la Build haya terminado de procesarse.
{
"status": false,
"error": {
"code": 5014,
"message": "Build Not Processed"
}
}
{
"status": false,
"error": {
"code": 3002,
"message": "Token Expired"
}
}
{
"status": false,
"error": {
"code": 3001,
"message": "Entity not found"
}
}
Campos principales del array files
| Campo | Descripción |
|---|---|
id |
Identificador único del registro del archivo adjunto. |
description |
La descripción proporcionada en el momento de la subida. |
file.originalName |
El nombre original del archivo subido. |
file.mimetype |
El tipo MIME detectado del archivo. |
file.size |
Tamaño del archivo en bytes. |
file.location |
La URL de almacenamiento donde está alojado el archivo. |
file.checksum |
Checksum para verificación de integridad. |
Workspace API
Usa este endpoint para adjuntar archivos a nivel de Workspace — por ejemplo, en pipelines de automatización que operan en varias Apps usando una sola credencial.
La autenticación usa un token de una cuenta de servicio, con ámbito de Workspace y no vinculado a ninguna app individual.
Para crear un token de una cuenta de servicio, consulta Cuentas de servicio.
Endpoint
POST https://upload.applivery.io/v1/organizations/{organizationId}/apps/{applicationId}/builds/{buildId}/files
Parámetros de ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
organizationId |
String | Sí | El identificador único de tu organización en Applivery. |
applicationId |
String | Sí | El identificador único de la App a la que pertenece la Build. |
buildId |
String | Sí | El identificador único de la Build al que adjuntar el archivo. |
Autenticación
Authorization: Bearer <your_service_account_token>
Ejemplo de petición
curl 'https://upload.applivery.io/v1/organizations/ORG_ID/apps/APP_ID/builds/BUILD_ID/files' \
-X POST \
-H 'Authorization: Bearer YOUR_SERVICE_ACCOUNT_TOKEN' \
-F 'file=@/path/to/mapping.txt' \
-F 'description=ProGuard mapping file'
El esquema de la respuesta es idéntico al de la Integrations API.
Casos de uso habituales
| Tipo de archivo | Ejemplo de description |
|---|---|
| Archivo dSYM de iOS | dSYM file for crash symbolication |
| Archivo de mapping ProGuard de Android | ProGuard mapping file |
| Informe de pruebas automatizadas | XCTest results — regression suite |
| Documento de aprobación QA | QA approval — v2.4.0 |
| PDF de notas de versión | Release notes for stakeholders |
| Conjunto de capturas de pantalla | Enterprise Store screenshots — en-US |