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
- FOSS
- GMS
- IzzyOnDroid
The default variant. Fully compatible with F-Droid and other open-source app stores. Does not require Google Play Services.Output path (debug):
Build commands
Release
Debug
app/build/outputs/apk/foss/debug/app-foss-debug.apkBuild types
Each variant can be built in two build types.release
release
- 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)
debug
debug
- Minification disabled
- Debuggable
- App name suffix:
Metrolist Debug(unless overridden) - Package name suffix:
.debugappended to application ID (unlessMETROLIST_APPLICATION_IDis set) - Uses the persistent debug keystore at
app/persistent-debug.keystorewhen 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.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.link service linked in the README.