Skip to content

F-Droid submission checklist #1

Closed

Description

@digitalby

Goal

Publish the app on F-Droid. This issue tracks every required and recommended item for a successful submission to the fdroiddata repository.


Required

App icon

  • Replace the placeholder launcher icon (ic_launcher_foreground.xml is the default Android Studio robot template)
  • Replace all raster mipmap PNGs/WEBPs (mdpi → xxxhdpi) with renders of the new icon
  • Adaptive icon layers (ic_launcher_foreground.xml, ic_launcher_background.xml) must reflect the new design
  • Supply a 512 × 512 px PNG in fastlane/metadata/android/en-US/images/icon.png

Fastlane supply metadata

F-Droid reads the fastlane supply directory structure from the repo root.

  • fastlane/metadata/android/en-US/title.txt — app name, max 30 chars
  • fastlane/metadata/android/en-US/short_description.txt — one-liner, max 80 chars
  • fastlane/metadata/android/en-US/full_description.txt — store description, max 4000 chars
  • fastlane/metadata/android/en-US/changelogs/1.txt — changelog for versionCode 1
  • fastlane/metadata/android/en-US/changelogs/2.txt — changelog for versionCode 2

fdroiddata submission

  • Create a metadata YAML at metadata/info.yuryv.androiddebugmode.yml in a fork of fdroiddata and open a merge request. Minimum viable file:
Categories:
  - System
License: MIT
SourceCode: https://github.com/digitalby/android-debug-mode
IssueTracker: https://github.com/digitalby/android-debug-mode/issues

AutoName: Debug Mode Widget

Builds:
  - versionName: '1.1'
    versionCode: 2
    commit: v1.1
    gradle:
      - release

AutoUpdateMode: Version v%v
UpdateCheckMode: Tags ^v[0-9.]+$
  • Push a signed v1.1 tag so the CI release job creates the GitHub Release the build recipe points to

README

  • Update the "What it does" section to include the Running Services shortcut added in v1.1
  • Add an F-Droid install badge and link once the app is accepted

Recommended

Screenshots

F-Droid displays screenshots if provided. At minimum, one screenshot of the widget placed on a home screen.

  • fastlane/metadata/android/en-US/images/phoneScreenshots/01_widget.png

Feature graphic

  • fastlane/metadata/android/en-US/images/featureGraphic.png — 1024 × 500 px banner (optional but displayed on the F-Droid website)

Notes

  • No anti-features detected. The app has no ads, no analytics, no proprietary dependencies, and no Google Play Services. All runtime dependencies (AndroidX Glance, Compose BOM, Kotlin) are Apache 2.0 or MIT.
  • Signing: F-Droid builds from source and signs with their own key. The existing CI keystore setup is unaffected. The fdroiddata build recipe does not need signing config.
  • Reproducible builds: F-Droid increasingly requires byte-for-byte reproducible APKs. This is a stretch goal for now but worth tracking: it would require pinning buildToolsVersion and ndkVersion and verifying output with diffoscope. Not blocking for initial submission.

Activity

  1. digitalby commented on Apr 4, 2026

    @digitalby
    OwnerAuthor

    Progress from this session

    App icon (closes icon item)

    Replaced the Android Studio template placeholder with a real adaptive icon:

    • Background (ic_launcher_background.xml): solid Material Blue 800 (#1565C0), replaces the default green with grid lines
    • Foreground (ic_launcher_foreground.xml): the Material adb symbol (Android robot with antennas) in white, scaled 2.5× and centred in the 66 dp adaptive-icon safe zone

    Both ic_launcher.xml and ic_launcher_round.xml already reference these layers, so both variants are updated automatically.

    Still needed: The legacy raster mipmap .webp files (used on API 23–25) still show the old placeholder. Regenerate them from Android Studio → right-click res → Image Asset Studio, or export from the updated vector. The 512 × 512 fastlane/metadata/android/en-US/images/icon.png also needs to be generated from the same vector.

    Fastlane setup

    • Gemfile — pins the fastlane gem
    • fastlane/Appfile — declares the package name
    • fastlane/Fastfile — three lanes: test (lint + unit tests), build_debug, build_release (reads keystore from env vars, matching the existing CI approach)

    F-Droid metadata

    All required fastlane supply files created under fastlane/metadata/android/en-US/:

    File Content
    title.txt Debug Mode Widget
    short_description.txt 73-char one-liner
    full_description.txt Full store description including Running Services
    changelogs/1.txt v1.0 release notes
    changelogs/2.txt v1.1 Running Services addition

    README

    • Added Running Services to "What it does"
    • Added "From F-Droid: coming soon" placeholder under Installation

    Remaining checklist items

    • Export and commit fastlane/metadata/android/en-US/images/icon.png (512 × 512 px from the updated vector)
    • Regenerate legacy mipmap .webp files for API 23–25 (Android Studio Image Asset Studio)
    • Add at least one screenshot to fastlane/metadata/android/en-US/images/phoneScreenshots/
    • Push a v1.1 tag to trigger the CI release job
    • Open a merge request in fdroiddata with the YAML build recipe from the issue description
    • Add the F-Droid badge to README once the app is accepted
  2. digitalby commented on Apr 5, 2026

    @digitalby
    OwnerAuthor

    Automated via 1ad1370.

    Added scripts/generate_icons.py + .github/workflows/generate-icons.yml. The script converts the adaptive icon AVD XMLs to SVG at runtime and rasterises them with cairosvg + Pillow. The CI workflow triggers on any push to main that touches the drawable sources and auto-commits the regenerated assets — no manual steps required going forward.

    Assets produced:

    • mipmap-{mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi}/ic_launcher.png + ic_launcher_round.png — replaced the old WebPs
    • fastlane/metadata/android/en-US/images/icon.png — 512×512
    • fastlane/metadata/android/en-US/images/featureGraphic.png — 1024×500 placeholder
    • fastlane/metadata/android/en-US/images/phoneScreenshots/01_widget.png — 1080×1920 placeholder

    The feature graphic and screenshot are basic placeholders (blue canvas + app name/label). They can be replaced with real designs by dropping updated files into those paths; the generation script only writes them if you re-run it, so manual replacements won't be overwritten by CI unless you touch the vector sources again.

  3. digitalby commented on Apr 6, 2026

    @digitalby
    OwnerAuthor

    The screenshot at fastlane/metadata/android/en-US/images/phoneScreenshots/01_widget.png is now a real emulator capture (1080×2400) showing the widget on the home screen — not a placeholder. The automated workflow (.github/workflows/screenshots.yml) runs on every push to feature/real-screenshots and on workflow_dispatch, builds the test APK, places the widget via UIAutomator2, and commits the result. Merged in #6.

    Remaining blockers before F-Droid submission:

  4. digitalby commented on Apr 6, 2026

    @digitalby
    OwnerAuthor

    fdroiddata MR opened: https://gitlab.com/fdroid/fdroiddata/-/merge_requests/36002

    Remaining:

    • Wait for F-Droid CI checks and reviewer feedback
    • Add F-Droid install badge to README once accepted
  5. github-actions commented on Apr 6, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-04-06)

    MR state: opened (updated 2026-04-06T17:46:22.760Z)

    View MR

  6. github-actions commented on Apr 11, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-04-11)

    MR state: opened (updated 2026-04-11T10:12:23.815Z)

    View MR

  7. github-actions commented on Apr 12, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-04-12)

    MR state: opened (updated 2026-04-12T07:26:21.302Z)

    View MR

  8. github-actions commented on Apr 13, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-04-13)

    MR state: opened (updated 2026-04-12T15:51:45.519Z)

    View MR

  9. github-actions commented on May 11, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-05-11)

    MR state: opened (updated 2026-05-11T07:58:55.773Z)

    View MR

  10. digitalby commented on May 21, 2026

    @digitalby
    OwnerAuthor

    check apk blocker fixed (v1.1.2)

    The MR's check apk job was failing on Found extra signing block 'Dependency metadata'. The v1.1.1 attempt to disable it used the wrong Gradle property name (android.includeDependencyInfoInApks instead of the plural includeDependenciesInfoInApks), so it was a no-op and the published APK still carried the block.

    Fixed via the AGP dependenciesInfo {} DSL (includeInApk = false, includeInBundle = false) in app/build.gradle.kts, removed the dead gradle.properties line, released v1.1.2 (versionCode 4).

    Verified on the published app-release.apk:

    • Signing block now only 0x7109871a (v2) + 0x42726577 (padding); dependency-metadata 0x504b4453 gone.
    • Signer SHA-256 matches AllowedAPKSigningKeys.

    fdroiddata MR #36002 recipe updated to a single clean 1.1.2 build (older dirty 1.1.0/1.1.1 builds dropped) and a comment posted asking a maintainer to re-run the pipeline. The fork-side pipeline has no runners so it fails instantly with zero jobs; only the maintainer-triggered fdroiddata pipeline validates. The daily monitor will report the next state change automatically.

  11. github-actions commented on May 22, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-05-22)

    MR state: opened (updated 2026-05-21T14:56:24.604Z)

    View MR

  12. github-actions commented on Jun 18, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-06-18)

    MR state: opened (updated 2026-06-18T10:41:40.712Z)

    View MR

  13. github-actions commented on Jun 26, 2026

    @github-actions
    Contributor

    F-Droid monitor (2026-06-26)

    MR state: merged (updated 2026-06-25T12:01:26.436Z)

    View MR

  14. github-actions commented on Jun 27, 2026

    @github-actions
    Contributor
  15. 110 remaining items

  16. github-actions commented on Oct 16, 2026

    @github-actions
    Contributor
  17. github-actions commented on Oct 17, 2026

    @github-actions
    Contributor
  18. github-actions commented on Oct 18, 2026

    @github-actions
    Contributor
  19. github-actions commented on Oct 19, 2026

    @github-actions
    Contributor
  20. github-actions commented on Oct 20, 2026

    @github-actions
    Contributor
  21. github-actions commented on Oct 21, 2026

    @github-actions
    Contributor
  22. github-actions commented on Oct 22, 2026

    @github-actions
    Contributor
  23. github-actions commented on Oct 23, 2026

    @github-actions
    Contributor
  24. github-actions commented on Oct 24, 2026

    @github-actions
    Contributor
  25. github-actions commented on Oct 25, 2026

    @github-actions
    Contributor
  26. github-actions commented on Oct 26, 2026

    @github-actions
    Contributor
  27. github-actions commented on Oct 27, 2026

    @github-actions
    Contributor
  28. github-actions commented on Oct 28, 2026

    @github-actions
    Contributor
  29. github-actions commented on Oct 29, 2026

    @github-actions
    Contributor
  30. github-actions commented on Oct 30, 2026

    @github-actions
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions