> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qa.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Mobile regression testing

> Pin a test plan to an uploaded application build instead of a preview URL.

A regression run of a mobile app uses the build you pin, not a preview URL. Upload the binary, then pass `applicationBuildShortId` on the test plan run.

## Application builds

An **application build** is an uploaded APK or zipped simulator `.app`, identified by `applicationBuildShortId` (for example `bld_abc123`). A run pins that build instead of an environment URL. The same short ID works in:

* `environment.applicationBuildShortId` on [Start Run](/api-reference/runs/start-test-run)
* `applications_config` on the [Test Run Action](/regression-testing/github#test-run-action-reference)
* Change reviews that pin a PR binary — see [PR Testing for Mobile Apps](/pr-testing/agents/mobile)

Upload has three requests: get a presigned upload URL, PUT the file, then create the build record. The shared script is on [API pull request testing](/pr-testing/api#upload-the-pr-build). The [Application Builds API](/api-reference/application-builds) is the upload reference.

## Build requirements

* **Android**: debug APK or AAB from your CI build step.
* **iOS**: simulator `.app` zipped as `.zip` or `.tar.gz`. Store and device `.ipa` builds cannot run on simulators.
* **Expo / React Native managed**: generate native projects in CI with `expo prebuild` (or download an EAS preview APK) before upload. Full build steps are in [Preparing Your App Build](/test-features/mobile-app-testing#preparing-your-app-build).

## Precedence

The run override wins over the test plan **Parameters** card, which wins over the project default. Pass `applicationBuildShortId` on the run when CI built a new binary for that job. Leave Parameters on a stable environment when you only need a scheduled or manual run against a known build.

## Run it from CI

<CardGroup cols={2}>
  <Card title="GitHub" icon="github" href="/regression-testing/github#test-a-mobile-pull-request-build">
    Build, upload, and run the plan with the Test Run Action.
  </Card>

  <Card title="GitLab" icon="gitlab" href="/regression-testing/gitlab#mobile-build">
    Upload the build and call `POST /v1/run` with `applicationBuildShortId`.
  </Card>

  <Card title="Bitrise" icon="mobile" href="/regression-testing/bitrise#test-your-mobile-builds">
    Upload the APK or simulator app and start the plan against it.
  </Card>

  <Card title="API" icon="code" href="/regression-testing/api#mobile-build">
    Upload once, then start the plan from any CI that can call the API.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.