Skip to main content
Metrolist is distributed through multiple channels, each with different requirements and capabilities. Three product flavors are defined in app/build.gradle.kts to serve these different distribution targets.
The FOSS variant is the recommended default for most contributors and users. It has no dependency on Google Play Services and is compatible with F-Droid.

Variants

The default variant. Fully compatible with F-Droid and other open-source app stores. Does not require Google Play Services.Build commands
Release
Debug
Output path (debug): app/build/outputs/apk/foss/debug/app-foss-debug.apk

Build types

Each variant can be built in two build types.
  • Minification enabled (isMinifyEnabled = true)
  • Resource shrinking enabled (isShrinkResources = true)
  • Code obfuscation via R8 with ProGuard rules from proguard-rules.pro
  • Not debuggable
  • Requires a release signing keystore (configured via environment variables STORE_PASSWORD, KEY_ALIAS, KEY_PASSWORD)
  • Minification disabled
  • Debuggable
  • App name suffix: Metrolist Debug (unless overridden)
  • Package name suffix: .debug appended to application ID (unless METROLIST_APPLICATION_ID is set)
  • Uses the persistent debug keystore at app/persistent-debug.keystore when present

Environment variable overrides

The build system supports several environment variables for customising output without modifying source files. These are useful in CI environments and for custom forks.
When METROLIST_APPLICATION_ID is set, the .debug suffix is not appended to the package name in debug builds. This allows installing a debug and release build side-by-side under distinct package names.

Nightly builds

Nightly builds are produced automatically by the GitHub Actions workflow defined in .github/workflows/build.yml. The workflow runs on every push to any branch and produces signed APKs for the FOSS and GMS variants.

FOSS nightly

Artifact name: app-releaseBuilt with assembleFossRelease and signed using the repository’s release keystore secrets.

GMS nightly

Artifact name: app-with-Google-CastBuilt with assembleGmsRelease. Requires a device with Google Play Services.
Nightly artifacts can be downloaded from the GitHub Actions workflow runs or via the nightly.link service linked in the README.
Do not bump versionCode or versionName in app/build.gradle.kts. Version bumps are performed exclusively by the core development team after manual review.