Repository navigation
[MOB] Prepare the Android app for F-Droid - #157
Merged
mrsumanbiswas merged 2 commits intoOct 9, 2026
Merged
Conversation
- Sign release builds from key.properties or ELEPHANT_* env vars (CI secrets); otherwise leave them unsigned for F-Droid. The debug key is only used when CI explicitly allows it. - Disable AGP's dependency-info block, which F-Droid rejects - Drop the "FOSS sanitizer" task: R8 already removes Flutter's Play Store classes, and fdroid scanner finds no non-free code in the APKs - Use Flutter's per-ABI versionCodes (1000/2000/4000 + build number) instead of stacking a second scheme on top of it - Bump version to 0.3.1+3 (it was stuck at 0.2.0+2 since v0.2.0) - Move launcher_name and flutter_launcher_icons to dev_dependencies - CI: pin Flutter 3.47.2, enforce pubspec.lock, fail when the tag doesn't match pubspec.yaml, sign with ANDROID_KEYSTORE_* secrets - Store listing: rename to full_description.txt and changelogs/ (the names F-Droid reads), rewrite the texts, add 4003.txt changelog - Add the fdroiddata build recipe and a release guide under fdroid/ Refs CommandLineCoding#156
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #156
Summary
Makes the Android app buildable and publishable on F-Droid, and fixes release versioning and signing along the way.
pubspec.yamlwas still0.2.0+2while v0.2.0–v0.3.0 shipped, so every release had versionCode 2. Bumped to0.3.1+3. The release workflow now fails if the tag doesn't matchpubspec.yaml.×10 + abiblock stacked on Flutter's own scheme, producing 1031/2031/4031. It now uses Flutter's scheme only: 1003 / 2003 / 4003.android/key.propertiesor CI secrets (ANDROID_KEYSTORE_BASE64,ANDROID_KEYSTORE_PASSWORD,ANDROID_KEY_ALIAS,ANDROID_KEY_PASSWORD), and are unsigned otherwise, as F-Droid expects.metadata/en-US/): files renamed to what F-Droid reads (full_description.txt,changelogs/), texts rewritten.fdroid/: the recipe to submit to fdroiddata, plus a release guide.Type of Change
Testing Performed
Verified on emulator/physical device.
Code passes lint checks.
fdroid lintpasses on the recipe;fdroid rewritemetamakes no changesfdroid scanner: source tree clean; all three release APKs clean (non-free classes, extra signing blocks)Release dependency graph: no Google Play, GMS or Firebase
flutter build apk --release --split-per-abi --target-platform=android-arm64→app-arm64-v8a-release.apk, versionCode 2003, unsignedSigning via env vars tested with a throwaway keystore
Notes
v0.3.1so F-Droid can build it.