Publishing your open-source Flutter app on F-Droid is an incredible way to reach a privacy-conscious user base. However, bridging the gap between a local Flutter project, a GitHub Actions pipeline, and F-Droid's strict build servers can be a daunting process.
In this guide, I will walk you through the exact steps to get your Flutter app packaged, signed, and published on F-Droid.
(Note: This guide assumes you are hosting your code and managing releases via GitHub. Other platforms will have a similar setup, but the CI/CD steps may vary).
Part 1: Preparing Your Local Project
Before we automate anything, we need to get your Android project ready for F-Droid's strict requirements.
1. Remove "Anti-Features"
F-Droid has a strict policy against proprietary software. Make sure you are not using any closed-source Google Play Services, analytics trackers, or proprietary crash reporters. If your app requires them, you must declare them. Read up on F-Droid's Anti-Features docs before proceeding.
2.…