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 our virtual device cloud using iOS Simulators and Android Emulators . Your builds must meet these requirements:
iOS Builds
Format : .app file (compressed as .zip)
Architecture : arm64 (for Apple Silicon simulators)
Building on an M1+ Mac will use arm64 by default. Intel Macs will produce x86_64 builds, which won’t work on our simulators.
Android Builds
Format : .apk file
Architectures : arm64-v8a and x86_64
Most build commands create universal APKs that include both architectures by default, so you typically don’t need to configure the build architecture manually.
Select your framework to see build instructions:
React Native
Flutter
Native iOS
Native Android
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)
Build it with:
npx react-native run-ios --mode Release
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
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:
Add this profile to your eas.json:
{
"build" : {
"preview-simulator" : {
"distribution" : "internal" ,
"ios" : {
"simulator" : true
}
}
}
}
Run the build command:
eas build --platform ios --profile preview-simulator
Once the build completes, EAS will provide a download URL for the build
Download and extract it to get the .app file
Compress the .app to a .zip and upload it to Autosana
React Native (Android)
Navigate to your Android directory and build the release APK:
cd android && ./gradlew assembleRelease
The APK will be located at:
android/app/build/outputs/apk/release/app-release.apk
Upload the .apk file to Autosana
React Native with Expo (Android) For Expo projects, use EAS Build to create APK builds:
Add this profile to your eas.json:
{
"build" : {
"preview" : {
"distribution" : "internal" ,
"channel" : "preview" ,
"android" : {
"buildType" : "apk"
}
}
}
}
Run the build command:
eas build --platform android --profile preview
Once the build completes, EAS will provide a download URL for the .apk file
Download the APK and upload it to Autosana
Flutter (iOS) We use .app files for simulator builds, not IPA files (which are for production devices)
Build the app for simulator:
flutter build ios --simulator
If your app uses flavors, add the --flavor flag: flutter build ios --simulator --flavor [flavorName]
The .app file will be located at:
build/ios/iphonesimulator/Runner.app
Compress the .app to a .zip file
Drag or upload the .zip file into the Autosana app upload dialog
Flutter (Android)
Build apk in debug mode:
flutter build apk --debug
If your app uses flavors, add the --flavor flag: flutter build apk --debug --flavor [flavorName]
File is located at:
build/app/outputs/flutter-apk/app-debug.apk
Drag or upload the .apk file into the Autosana app upload dialog
Native iOS (Xcode/SwiftUI) Option 1: Using Xcode (Graphical Interface)
Open your project in Xcode
At the top of Xcode, set:
The scheme to your app target (e.g., “MyApp”)
The device to a simulator (e.g., “iPhone 16 Pro”)
In Xcode menu, select Product > Scheme > Edit Scheme
Under Run , change Build Configuration to Release
Press Command + B to build the project
After the build finishes, the .app file will be located at:
~ /Library/Developer/Xcode/DerivedData/ < ProjectName > /Build/Products/Release-iphonesimulator/ < AppName > .app
Right click and open in Finder
Right click and compress it to make a .zip file
Drag or upload the .zip file into the Autosana app upload dialog
Finding the build folder in Finder:
Open Finder
Press Command + Shift + G
Paste the path and press Enter
Option 2: Using Terminal (Command Line)
Open Terminal and navigate to the root of your Xcode project:
Run this command to build the Release version for simulator:
xcodebuild -scheme YourAppScheme \
-sdk iphonesimulator \
-configuration Release \
-destination 'platform=iOS Simulator,OS=latest,name=iPhone 16 Pro' \
-derivedDataPath ./build \
ARCHS=arm64 \
ONLY_ACTIVE_ARCH=NO \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO \
build
After the build completes, your .app file will be located:
./build/Build/Products/Release-iphonesimulator/YourAppName.app
Right click and open in Finder
Right click and compress it to make a .zip file
Drag or upload the .zip file into the Autosana app upload dialog
Why Release configuration? Release builds provide production parity with optimizations enabled, matching what your users experience. Simulator builds don’t require code signing, so Release configuration works without additional setup. While Debug builds will work, they’re not recommended for testing as they don’t reflect the production environment.
Native Android (Kotlin/Java) Option 1: Debug Build (Recommended for Quick Testing) Debug builds work immediately without any signing configuration. Using Android Studio:
Open your project in Android Studio
From the menu bar, select Build > Build Bundle(s) / APK(s) > Build APK(s)
Wait for the build to complete
Click on locate in the notification that appears, or navigate to:
app/build/outputs/apk/debug/app-debug.apk
Upload the .apk file to Autosana
Using Terminal: cd /path/to/your/android/project
./gradlew assembleDebug
APK location: app/build/outputs/apk/debug/app-debug.apk Option 2: Release Build (Production Parity) Release builds provide better production parity but require signing configuration. Step 1: Configure Signing (if not already set up) Add this to your app/build.gradle: android {
buildTypes {
release {
// Use debug keystore for testing (not for Play Store)
signingConfig signingConfigs.debug
minifyEnabled false
}
}
}
This uses the debug keystore for convenience. For Play Store releases, you’ll need a proper release keystore.
Step 2: Build the Release APK Using Terminal: cd /path/to/your/android/project
./gradlew assembleRelease
APK location: app/build/outputs/apk/release/app-release.apk Using Android Studio:
Open your project in Android Studio
From the menu bar, select Build > Select Build Variant
Change from “debug” to “release”
Select Build > Build Bundle(s) / APK(s) > Build APK(s)
Which should I use?
Debug : Faster builds, works immediately, easier debugging
Release : Production-like optimizations, catches minification issues