Each app can have complete app store content, including localized descriptions, feature graphics, and screenshots (as of v0.103 of the F-Droid client app and v0.8 of fdroidserver). This is possible both when apps are added via build metadata as well as when including pre-built files in a simple repository. There are three paths to including app store content for apps:
- In the app’s source repository
- In the app’s build metadata in an fdroiddata collection
- Directly in the F-Droid repo
There are two data formats:
- descriptive materials in plain text or HTML
- graphics and screenshots as PNG or JPEG files
In the app’s source repository
There are two options for including the app store materials in an app’s source repository: fastlane supply and Triple-T Gradle Play Publisher. Both of these are free software tools that integrate into an Android developer’s workflow. Once the files are included in the app’s source repo, and those files are included in a tagged release of the app, F-Droid will include all those files.
In the end, it is not actually necessary to actually install or use either fastlane supply nor Gradle Play Publisher. F-Droid includes these files purely based on the standard file layout that those tools use.
All the localized descriptions and graphics will automatically show up in the F-Droid repo once they are available in the source repo of a release that the repo builds. For example, if these files are included in a git repo’s master branch but not yet in a tagged release, they will not be included.
The last important detail is that the texts in the app’s metadata file will override all other descriptive texts from Fastlane/Triple-T. That is specifically Name/AutoName, Summary, and Description. Once an app’s descriptive texts have been moved into the source repo, then file a merge request or issue to remove Summary and Description from the app’s metadata file.
In the app’s build metadata in an fdroiddata collection
All the app store materials can also be added to any fdroiddata
repository of build metadata. This follows a file layout modeled
modified to fit into the fdroiddata workflow. Any files in this
layout will be copied into the repo and added to the repo’s index file
- <fdroiddata>/ └── metadata/ └── <package-id>/ └── <locale>/ ├── full_description.txt ├── short_description.txt ├── title.txt ├── video.txt ├── images/ │ ├── featureGraphic.png │ ├── icon.png │ ├── promoGraphic.png │ └── tvBanner.png ├── changelogs/ │ ├── <version-code>.txt │ └── <version-code>.txt ├── phoneScreenshots/ │ └── *.png ├── sevenInchScreenshots/ │ └── *.png ├── tenInchScreenshots/ │ └── *.png ├── tvScreenshots/ │ └── *.png └── wearScreenshots/ └── *.png
Directly in the F-Droid repo
The ultimate destination for files from the app’s source repo and fdroiddata metadata sub-directories is in the F-Droid repo. The text all gets included into the index file (aka index-v1.json). All of the graphics files can be directly included in the repo. If graphics files are also in the app’s source or fdroiddata, then the files directly in the repo will be overwritten. The text files from the fastlane layout are ignored if they are in the repo.
- fdroid/ └── repo/ └── <package-id>/ └── <locale>/ ├── featureGraphic.png ├── icon.png ├── promoGraphic.png ├── tvBanner.png ├── phoneScreenshots/ │ └── *.png ├── sevenInchScreenshots/ │ └── *.png ├── tenInchScreenshots/ │ └── *.png ├── tvScreenshots/ │ └── *.png └── wearScreenshots/ └── *.png
fdroid update adds all the graphics files it finds in the repo to
fdroid server update will sync all of the files in the
repo to the various locations where the repo is actually hosted.