Docs de Autonomy
Móvil

Builds móviles

Construye, archiva y sube una app para Simulador de iOS o un APK de Android para que Autonomy pueda ejecutar recorridos móviles sobre ella.

Las ejecuciones móviles de Autonomy necesitan una build de tu app. Sube esa build una vez y reutilízala en ejecuciones manuales, ejecuciones de pull request y ejecuciones programadas hasta que se publique la siguiente versión.

Qué subir

VariableRequiredDescription
iOS .app (.zip, .tgz, .tar.gz)NoBundle .app para Simulador, archivado con la app en la raíz del archivo. Aceptado por el panel y la API de artefactos.
Android .apkNoPaquete de Android estándar. Aceptado por el panel y la API de artefactos.
Android .aabNoAndroid App Bundle. Aceptado por el panel y la API de artefactos.

Para iOS, Autonomy necesita una build de Simulador porque las ejecuciones se realizan en simuladores en la nube. Un .ipa firmado construido para iphoneos será rechazado por el runner. Para Android, se aceptan tanto .apk como .aab; las ejecuciones instalan el artefacto en un emulador en la nube y lo lanzan por su nombre de paquete.

Construir para Simulador de iOS

Para un proyecto Xcode estándar, construye con xcodebuild:

Construir el .app para Simulador de iOSbash
xcodebuild -workspace ios/MyApp.xcworkspace \
-scheme MyApp \
-configuration Release \
-sdk iphonesimulator \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath ios/build \
build

El bundle queda en ios/build/Build/Products/Release-iphonesimulator/MyApp.app. Para proyectos Expo o React Native, ejecuta primero npx expo prebuild --platform ios y luego el mismo comando xcodebuild sobre el workspace generado.

Para subidas desde el panel y la API directa, archiva el bundle antes de enviarlo. Mantén el bundle .app en la raíz del archivo para que Autonomy pueda desempaquetarlo sin tener que adivinar.

Comprimir el bundle .appbash
cd ios/build/Build/Products/Release-iphonesimulator
zip -r MyApp.app.zip MyApp.app

Construir para Android

Para un proyecto Android estándar, construye un APK de debug desde la raíz del proyecto. Los APK de debug se instalan en emuladores sin firma.

Construir el APK de debugbash
./gradlew assembleDebug

El APK queda en android/app/build/outputs/apk/debug/app-debug.apk. Para proyectos Expo o React Native, ejecuta primero npx expo prebuild --platform android y luego el mismo comando Gradle sobre el proyecto generado.

Para builds de App Bundle, usa ./gradlew bundleDebug y recoge el .aab de android/app/build/outputs/bundle/debug/. Ambos formatos funcionan.

Subir desde el panel

  1. Abre el proyecto y cambia a la pestaña Mobile.
  2. Haz clic en Examinar archivos y selecciona el .app.zip / .app.tar.gz (iOS) o el .apk / .aab (Android).
  3. Espera a que termine el procesamiento de la build.
  4. Abre el test y elige la build subida en Subida de app.
  5. Para los tests de Android, confirma que el nombre del paquete coincide con el APK. Autonomy lo lee del manifiesto, pero puedes anularlo en el test.
  6. Ejecuta el test manualmente una vez para confirmar que la build arranca y que el recorrido llega al primer punto de control.

Subir con la API de artefactos

Usa la API de artefactos desde CI o desde el entorno de ejecución de un agente cuando la build aún no esté almacenada en un entorno guardado de Autonomy. El flujo de subida devuelve un identificador de almacenamiento, analiza el artefacto y luego pasa ese identificador de almacenamiento a una ejecución.

Para consultar el esquema del endpoint y los formatos de respuesta, consulta Artefactos en la referencia de API.

Subir un archivo para Simulador de iOSbash
UPLOAD_TARGET=$(curl -fsS -X POST "$AUTONOMY_API_URL/api/artifacts/upload-url" \
-H "Authorization: Bearer $AUTONOMY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform":"ios","fileName":"MyApp.app.zip"}')
UPLOAD_URL=$(printf '%s' "$UPLOAD_TARGET" | jq -r '.uploadUrl')
STORAGE_ID=$(printf '%s' "$UPLOAD_TARGET" | jq -r '.storageId')

curl -fsS -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/zip" \
--data-binary "@ios/build/Build/Products/Release-iphonesimulator/MyApp.app.zip"

SCAN_BODY=$(jq -n \
--arg storageId "$STORAGE_ID" \
--arg fileName "MyApp.app.zip" \
'{ storageId: $storageId, platform: "ios", fileName: $fileName, contentType: "application/zip" }')

curl -fsS -X POST "$AUTONOMY_API_URL/api/artifacts/scan" \
-H "Authorization: Bearer $AUTONOMY_API_KEY" \
-H "Content-Type: application/json" \
-d "$SCAN_BODY"
Iniciar una ejecución con la build subidabash
TRIGGER_BODY=$(jq -n \
--arg testPlanId "$AUTONOMY_TEST_PLAN_ID" \
--arg storageId "$STORAGE_ID" \
--arg bundleId "com.example.MyApp" \
--arg commitSha "$GITHUB_SHA" \
--arg idempotencyKey "github:${GITHUB_RUN_ID}:${GITHUB_RUN_ATTEMPT}:ios" \
'{
  testPlanId: $testPlanId,
  platforms: ["ios"],
  branch: env.GITHUB_REF_NAME,
  targets: {
    ios: {
      storageId: $storageId,
      sourceMode: "upload",
      bundleId: $bundleId,
      fileName: "MyApp.app.zip"
    }
  },
  deployment: {
    provider: "github-actions",
    commitSha: $commitSha
  },
  idempotencyKey: $idempotencyKey
}')

curl -fsS -X POST "$AUTONOMY_API_URL/api/v1/run.trigger" \
-H "Authorization: Bearer $AUTONOMY_API_KEY" \
-H "Content-Type: application/json" \
-d "$TRIGGER_BODY"

Para Android, sube el .apk o el .aab de la misma forma e inicia la ejecución con platforms: ["android"], targets.android.storageId y targets.android.packageName.

Si tu proveedor de CI ya te proporciona una URL HTTPS temporal para el artefacto, puedes omitir el paso de subida e iniciar la ejecución con artifactUrl y sourceMode: "url". Usa entornos guardados para builds estables de staging y targets explícitos para artefactos puntuales de vista previa.

Limitaciones

  • iOS se ejecuta solo en Simuladores en la nube. La cámara, las solicitudes biométricas (Face ID, Touch ID) y cualquier flujo que requiera una build firmada para dispositivo no funcionarán.
  • Android se ejecuta en emuladores en la nube. Las funciones solo de hardware (NFC, huella dactilar, cámara real) no se simulan.

Solución de problemas

La subida de iOS se rechaza como build de dispositivo

Confirma que la build se produjo con -sdk iphonesimulator y un destino de Simulador. Un bundle producido para iphoneos es una build de dispositivo y Autonomy la rechazará al subirla.

La subida de Android se rechaza como formato incorrecto

Autonomy solo acepta .apk y .aab. Cualquier otro formato se rechaza en el momento de la subida.

El test no encuentra la build subida

La build se subió pero nunca se adjuntó al test. Abre el test y elige la build subida en Subida de app antes de ejecutarlo.

CI llena las subidas

Usa entornos guardados para builds que deban reutilizarse y targets de ejecución explícitos para artefactos puntuales de CI. Reserva las subidas del panel para builds que un responsable de versión elige para las ejecuciones de producción.

On this page