applicationBuildShortId.
If the GitHub App auto-runs without a build override, it uses the application’s default environment (the last configured staging or production build). That is not the PR binary.
Choose an integration mode
Both modes use the same upload. They differ only in how you start testing after you have a build short ID.
Create the mobile application in Settings → Applications & Envs before CI
uploads. See Mobile App Testing. Passing
applicationBuildShortId creates or reuses an environment for that build; you
do not add a new environment in the UI for every PR.Prerequisites
- Mobile testing enabled for the organization (contact support if it is not)
- A mobile application in Settings → Applications & Envs (note the short ID, for example
app_gXeBl2) - A test plan short ID for API-driven runs, or the GitHub App / GitLab MR integration connected for change reviews
- An API token from Organization Settings → API Keys, stored as
QATECH_API_TOKEN(GitHub) orQA_TECH_API_TOKEN(GitLab) - A simulator or emulator build in CI: Android
.apk, or iOS.appcompressed as.zipor.tar.gz. Device and App Store.ipafiles cannot run on simulators. See Preparing Your App Build.
How it works
Upload the PR build
Run this after your compile step, on every PR. Replaceapp_gXeBl2 and the file path.
.app first, set "platform": "ios", and upload the archive:
otherApplicationBuildShortIds. See Other Apps.
Set up GitHub Actions
StoreQATECH_API_TOKEN under Settings → Secrets and variables → Actions.
Run a test plan on the PR
Use this when a required check should run a known plan against the PR binary.app_gXeBl2, pln_abc123, and the APK path. Set blocking: true if the workflow should fail when tests fail.
iOS builds need a macOS runner and a simulator .app. Zip it, use "platform": "ios", and point BUILD_FILE at the archive. Full xcodebuild flags are in Mobile App Testing.
Run a change review on the PR
Use this when you want the review agent to select tests from the diff and post a native GitHub review. Install the GitHub App at the organization level with access to the repository. Turn off Auto-run on PRs for that repo in Settings → Integrations → GitHub App so QA.tech does not also start a review against the default environment.github.event.pull_request.html_url on pull_request events. Set blocking: true if the job should wait for the verdict. Inputs and outputs are in Change Review Action.
Write a PR description that names the user-facing flows to test. The agent uses that context the same way it does for web PRs. See PR Testing.
Set up GitLab CI
StoreQA_TECH_API_TOKEN as a CI/CD variable. Upload the build, then start a run or a change review. Change reviews need the repository connected under Settings → Integrations → GitLab.
testPlanShortId and the same applications override. Poll Get Run if the job should fail on test failure.
Set up Bitrise
Bitrise is the same upload-then-run sequence, using$BITRISE_APK_PATH or a zipped simulator .app from xcode-build-for-simulator. The Bitrise page has copy-paste script steps for Android and iOS, including blocking (poll until the run finishes).
To post an MR/PR review instead of only starting a plan, keep that upload script and replace the final POST /v1/run with POST /v1/chat/change-review and applicationBuildShortId, as in the GitLab example.
Network access
Mobile sessions use a different outbound IP pool than web tests. If the app talks to a firewalled backend, allowlist the ranges under Settings → Network (Mobile Testing IP Whitelist). See Network Access.Troubleshooting
Tests ran, but against the old app The job did not passapplicationBuildShortId, or GitHub App Auto-run on PRs started a second review on the default environment. Pin the CI trigger to the uploaded build and turn auto-run off when CI owns the review.
Upload or create-build fails for iOS
The file is a device or App Store .ipa. Produce a simulator .app and upload a .zip or .tar.gz. See Preparing Your App Build.
Change review starts but never comments on the PR
The GitHub App is not installed, or it does not have access to the repository. The Change Review Action still needs that App connection so the agent can read the PR and post the review. See Change Review Action setup.
Login or API calls fail in the emulator
The backend is blocking mobile testing IPs. Update the Mobile Testing IP Whitelist.
Related documentation
- Mobile App Testing - Application setup, simulator builds, device presets
- Application Builds API - Upload URL, create build, list builds
- GitHub Actions - Test Run Action and Change Review Action reference
- GitHub App - Automatic PR reviews (web preview URLs)
- Bitrise - Mobile CI upload and test plan trigger
- CI/CD Integration - API-driven vs AI exploratory modes
- PR Testing - PR descriptions and review context