Upload a build

SpawnDroid accepts one APK or one AAB. Here is how to get a single APK from the bundles and archives you may already have.

SpawnDroid installs one APK or one AAB per upload. It does not unpack an XAPK, APKS or ZIP bundle. The upload dialog checks the archive before sending it, so a bundle is rejected before any bytes leave your browser.

What each file is

FileWhat it isUpload it?
.apkOne installable Android packageYes
.aabAn Android App Bundle from the Play pipelineYes — SpawnDroid converts it on launch
.xapkA ZIP of a base APK plus split APKs and manifest.jsonNo
.apksA bundletool split archive with toc.pbNo
.zipA generic ZIP, a renamed bundle, or an app archiveNo

Android Studio

Build → Build Bundle(s) / APK(s) → Build APK(s) writes a debug APK to app/build/outputs/apk/debug/. For a release build, use Build → Generate Signed Bundle / APK → APK.

Gradle

# Debug APK
./gradlew assembleDebug
# app/build/outputs/apk/debug/app-debug.apk

# Release APK
./gradlew assembleRelease
# app/build/outputs/apk/release/app-release.apk

bundleRelease writes an .aab under app/build/outputs/bundle/release/; that is also accepted.

Flutter

flutter build apk --debug
# build/app/outputs/flutter-apk/app-debug.apk

flutter build appbundle
# build/app/outputs/bundle/release/app-release.aab

flutter build apk --split-per-abi produces several APKs. Upload the one for the device you are testing (usually app-arm64-v8a-release.apk), not the whole output folder.

React Native and Expo

# Bare React Native
cd android && ./gradlew assembleDebug
# android/app/build/outputs/apk/debug/app-debug.apk

For an Expo project, eas build -p android --profile preview produces an APK when the profile sets "android": { "buildType": "apk" }; the default production profile produces an AAB.

If all you have is an XAPK or APKS

An XAPK is a container, not an installable package. Use the base APK inside it only when you know the app does not need its split APKs. For an APKS, ask bundletool for a universal APK:

bundletool build-apks --bundle=app-release.aab --output=app.apks \
  --mode=universal
unzip app.apks universal.apk

Upload universal.apk. If the app depends on Play Services or a split that is not in the universal APK, it may not behave the same way; a single APK or the AAB is the reliable path.

Renamed files

Changing .xapk to .apk does not change the archive. The upload check reads the ZIP entries, so a renamed bundle is still rejected. Rename it back and use the steps above.

Was this page helpful?

On this page