Network Access
QA.tech test runs originate from a fixed pool of IP addresses. If your app connects to a backend that has a firewall, VPN gateway, IP allowlist, or rate-limiting rules, you must whitelist these IPs to allow test traffic through.QA.tech IP Addresses
Find the current list of mobile testing IP ranges in the app under Settings → Network — see the Mobile Testing IP Whitelist section.Mobile testing uses a different set of IP ranges than web testing, so the
Outbound IPs API does not
cover them. IP addresses may change — always use the live Mobile Testing IP
Whitelist in Settings → Network as the authoritative source.
How to Add the Whitelist
Add the IP ranges from Settings → Network to your security system’s allowlist. The exact steps depend on your setup — see the IP Access Control guide for platform-specific instructions covering Cloudflare, AWS CloudFront, and other firewalls. Common places to add these rules:- Backend firewall or security group (AWS, GCP, Azure)
- API gateway rate-limiting or allowlist rules
- VPN / zero-trust gateway (e.g. Tailscale, Cloudflare Access, Zscaler)
- Mobile backend service IP allowlists
Test Environments
Mobile tests run on cloud-hosted iOS Simulators and Android Emulators. Configure the simulator or emulator under Settings → Device Presets — see Mobile Device Presets for device model, OS version, orientation, location, network log capture, and override priority.Limitations
Cloud iOS Simulators and Android Emulators cover touch, navigation, GPS, and deep links. They do not include some hardware sensors.Some Android apps detect the emulator as a rooted device and refuse to start.
If that happens, skip the rooted-device check on your staging build.
Debugging and Observability
AI Chat and Test Dependencies
When mobile testing is enabled for your organization, you can create, edit, and run mobile tests through the AI Chat Assistant — the same natural-language workflow as web testing. For test dependencies:- Wait For — supported. Use it to control execution order between mobile tests.
- Resume From — not supported for mobile apps. Mobile tests cannot inherit app state from another test.
Coming Soon
- Real device testing on physical iOS and Android hardware (selectable through device presets)
- Device console logs in the test trace
Preparing Your App Build
Mobile testing requires a simulator or emulator build of your app, not an
AppStore or Play Store distribution build. Follow the steps below for your
platform.
- iOS
- Android
Prepare an iOS Simulator build (The Upload the resulting
.app file compressed as .zip or .tar.gz). AppStore distribution builds (.ipa) are not supported - they are device-specific and cannot run on simulators.Build with Xcode
Run and build your application in Xcode while targeting an iOS Simulator.Once the build is complete and the app is running in the simulator, locate the.app file:- In Xcode, go to Product → Show Build Folder in Finder
- Navigate to Products/Debug-iphonesimulator/
- Find your
.appfile
Build with Xcode Command Line Tools
.app file is output to:Compress the .app file
Once you have the.app file, compress it before uploading:.zip (or .tar.gz) file - not the raw .app directory.iOS and Android on one application
Each mobile environment picks a platform (iOS or Android) and the build installed on that platform. One mobile application can hold both platforms as separate environments, and its tests run on the environment a test plan or run selects. Use one application when the apps share about 80 to 90 percent of their features, so the same steps still describe both. Login, navigation, and the core flows are the usual case. Add an environment for each platform and stage, for example iOS Staging and Android Staging. Create one test plan per platform. On each plan, select that platform’s environment and a device preset for the same platform, and include the same test cases in both plans. A shared flow such as login stays in one place. Use a separate mobile application for each platform when the apps are different enough to need their own test suites. A test case belongs to one application and runs only on that application’s environments, so a second application means a second copy of any shared cases.Setting Up a Mobile App in QA.tech
1
Create a Mobile Application
In your project, go to Settings → Applications & Envs and create a new
application. Select Mobile App as the application type. Follow iOS and Android on one application before creating a second application for the other platform.
2
Add an Environment
Add an environment to your mobile application. Select iOS or Android, then name the environment for the platform and the stage (for example, iOS Staging or Android Production).When the apps share tests, add the other platform as another environment on this same application.No URL is required for mobile apps.
3
Upload Your App Build
Upload your app build file:
- iOS:
.zipor.tar.gzcontaining your.appsimulator build (max 4 GB) - Android:
.apkfile (max 4 GB)
4
Add Other Apps (Optional)
Use Other Apps when the primary app needs companion, authentication, or
helper apps installed on the same device. Upload up to three additional
builds. They must use the same platform and have different bundle IDs or
package names.
5
Create and Run Tests
Create tests for your mobile application. The AI agent will interact with your app using touch gestures and device controls.
CI and PR testing
A pull request does not give QA.tech a preview URL for a native app. CI must upload the PR simulator or emulator binary and pin the run to that file withapplicationBuildShortId.
See PR Testing for Mobile Apps for GitHub Actions, GitLab, and Bitrise workflows (test plans and change reviews). If you build with fastlane, see fastlane regression testing for a lane that uploads each new build and runs a test plan on it.
Other Apps
A mobile environment can install one primary build and up to three other apps on the same simulator or emulator. Each environment pins exact build versions, so staging and production environments can use different versions of the same helper app. Use other apps for packages that participate in the same device session but do not need their own QA.tech test suite. Create a separate Application when the app has independent tests or should run in a separate environment.Other apps currently require the Appetize mobile backend. All builds in an
environment must target the same platform and use distinct bundle IDs or
package names.
AI Agent Capabilities
The agent interacts with your app using the following actions:Touch Interactions
Device Controls
See Limitations for hardware and environment constraints.