Building and Publishing
Building Your App
Generate Android APK and AAB artifacts from saved settings and understand the current iOS build boundary.
Before you start
- Saved configuration
- Final identifier
- Signing credentials
- A version name and strictly increasing version code
Configure and verify
Save every settings page
Build input is created from database values, not unsaved preview drafts.
Review signing and SDK readiness
Confirm keystore credentials and resolve missing Firebase, Google, AppsFlyer, Meta, or other required settings.
Set version details
Version Name is user-facing. Version Code is an integer and must increase for every Play release.
Start the build
On Android, the worker takes the global build lock, creates a fresh isolated source directory from the reusable template, copies assets, patches settings and dependencies, then builds release APK and AAB.
Wait for completion
The normal page shows progress and current notes. Admin users can reveal capabilities, history, detailed logs, and emulator controls.
Download and test
Use APK for direct installation and testing. Upload AAB to Google Play. The Source item currently represents the stored build input snapshot, not a complete distributable Flutter source archive.
Android artifacts
- APK
- Direct testing or sideloading
- AAB
- Google Play upload
- Build input snapshot
- Saved app, module, version, asset, and signing references used by the worker
Worker concurrency
A global Android build lock currently serializes compilation on one worker machine. Additional worker assignment is a future scaling step.
iOS status
Test before release
- All settings are saved
- Version code increased
- Signing key is backed up
- APK passes device tests
- AAB is uploaded first to a test track