Skip to main content
Testing a website? You don’t need to build anything - just enter your URL when creating an app. This guide is for mobile apps (iOS and Android) only.
Add our MCP Server to help you build your app for our cloud.

Build Requirements

Autosana runs your mobile apps on both our virtual device cloud (iOS Simulators and Android Emulators) and real devices in the cloud. The build you upload decides where it can run:
PlatformBuildRuns on
iOS.app (compressed as .zip)Simulator only
iOS.ipaReal devices only
Android.apk / .aabEmulators and real devices

iOS Builds

  • Simulator — a .app bundle compressed as .zip, built for the simulator SDK (arm64). Cheapest and fastest; covers most testing.
  • Real device — a .ipa built for physical hardware (iphoneos). Required for real-device testing.
Building on an M1+ Mac will use arm64 by default. Intel Macs will produce x86_64 builds, which won’t work on our simulators.
The simulator (.app) build steps are below; jump to Real device builds for .ipa.

Android Builds

  • Format: .apk or .aab
  • Architecture: a universal APK/AAB (recommended) runs on both emulators and real devices. An x86_64-only APK runs on emulators but not real devices.
Most build commands create universal APKs that include all architectures by default, so the same Android build works on both emulators and real devices — no separate build needed.

Select your framework to see build instructions:
Important: React Native apps must be built in Release mode. Debug builds will attempt to connect to Metro bundler and fail to run on the device. Release builds bundle the JavaScript code directly into the app, making them standalone.

React Native (iOS)

  1. Build it with:
npx react-native run-ios --mode Release
  1. App file should be here:
ios/build/Build/Products/Release-iphonesimulator/[YourApp].app
In macOS, it should just be YourApp because macOS hides .app extensions
  1. Go to Finder, compress YourApp to a .zip and upload/drag it into the Autosana app upload dialog

React Native with Expo (iOS)

For Expo projects, use EAS Build to create simulator builds:
  1. Add this profile to your eas.json:
{
  "build": {
    "preview-simulator": {
      "distribution": "internal",
      "ios": {
        "simulator": true
      }
    }
  }
}
  1. Run the build command:
eas build --platform ios --profile preview-simulator
  1. Once the build completes, EAS will provide a download URL for the build
  2. Download and extract it to get the .app file
  3. Compress the .app to a .zip and upload it to Autosana

React Native (Android)

  1. Navigate to your Android directory and build the release APK:
cd android && ./gradlew assembleRelease
  1. The APK will be located at:
android/app/build/outputs/apk/release/app-release.apk
  1. Upload the .apk file to Autosana

React Native with Expo (Android)

For Expo projects, use EAS Build to create APK builds:
  1. Add this profile to your eas.json:
{
  "build": {
    "preview": {
      "distribution": "internal",
      "channel": "preview",
      "android": {
        "buildType": "apk"
      }
    }
  }
}
  1. Run the build command:
eas build --platform android --profile preview
  1. Once the build completes, EAS will provide a download URL for the .apk file
  2. Download the APK and upload it to Autosana

Real device builds (.ipa)

To run on real iPhones instead of the simulator, upload an .ipa built for physical hardware (iphoneos) — not a zipped .app. The file extension is how we route the build: .ipa → real device, .app / .zip → simulator.
Signing matters. Use a Development or Ad Hoc signed .ipa. You do not need to register our device UDIDs — builds are automatically re-signed for the test device. Enterprise-signed builds fail to launch on our devices, and App Store builds aren’t supported. Re-signing strips some entitlements (e.g. Push Notifications, Apple Pay, App Groups), so features depending on them won’t work during tests.
Android needs no separate build — a universal .apk / .aab already runs on both emulators and real devices.
Use an EAS profile with internal distribution — note there is no simulator: true:
{
  "build": {
    "device": {
      "distribution": "internal"
    }
  }
}
eas build --platform ios --profile device
EAS provides a download URL for the .ipa. Upload that file to Autosana.
After uploading your .ipa, start a run with Target: Real device (or physical_device: true via the API). See Real Device Testing for how to run and pick a device.