Skip to content

How builds work

A build turns your configuration into a real Flutter app and compiles it. This page explains what runs, so the log makes sense and a failure tells you something.

Your app configuration is not interpreted at runtime. It is used to generate Dart source, which is then compiled like any other Flutter app. The navigation you placed becomes real widgets; your colours become real theme values.

That has two consequences:

  • The app is as fast as a hand-written Flutter app, because that is what it is.
  • Changing anything in the builder needs a new build before it reaches a phone. The preview updates live; the installed app does not.

The log narrates each one:

  1. Preflight. Check the Flutter toolchain is the expected version.
  2. Create or reuse the workspace. Each app keeps a persistent Flutter project, so later builds are incremental and faster than the first.
  3. Generate lib/main.dart from your configuration.
  4. Update pubspec.yaml with the packages your placed features need.
  5. Copy your app icons and branding assets.
  6. Set the Android application ID from the app’s own identifier.
  7. Update AndroidManifest.xml — internet permission, and cleartext traffic.
  8. Set the display name shown under the icon.
  9. flutter pub get.
  10. Generate launcher icons at every density.
  11. flutter build appbundle --release, then repack that into a universal APK.

Five to fifteen minutes is normal. The first build for an app is the slowest, because the workspace is created from scratch and every package is downloaded.

The job is capped at twenty minutes and does not retry. A half-finished Gradle workspace is not safe to resume, so a failed build is final and you start another. That is also why the allowance counts attempts rather than successes.

You can close the tab. The build runs on Memberside’s servers and continues.

Expand a build row to see it. Each step logs a line as it starts, so the last line before a failure names the step that failed.

The lines worth knowing:

LineMeaning
🔧 Configuring Android application IDYour app’s package name is being written
📥 Running flutter pub getPackages are being fetched — slow on a first build
🔑 Signing certificate SHA-1: …The certificate the APK was signed with, cached for Google sign-in setup
Reading a build log

An .aab and an .apk. The AAB is built first and the APK is repacked from it, so they are the same app. See APK and AAB for which to use when.

Free apps show a “Made with Memberside” splash. Removing it is a paid-plan feature, and it is decided from the account’s plan at build time rather than from your saved configuration — so it cannot be turned off in settings and it changes the moment the plan does.

SymptomCauseFix
Stuck at pending, never runningThe build queue is not consuming jobsGet in touch; this is server-side
Fails within secondsUsually an invalid icon or a malformed settingWhen a build fails
Fails at twenty minutes exactlyThe build hit its ceilingRetry; if it recurs, get in touch
Succeeds but the app is out of dateYou are running an older downloadDownload from the newest build row

Your build allowance explains the metering.