Statically validating correctness of Fastlane metadata

Hey Guys,

I am the developer of Noice. The source repository of Noice contains all of the app’s descriptive assets in Fastlane Supply compliant directory structure. After maintaining Noice for a year, I noticed a problem where many people (F-Droid users mostly [thanks guys btw]) contributed translations to the application including the descriptive assets and there was no easy way to validate the correctness of these assets over a pull request. I could run Fastlane Supply with validate_only flag which uploads everything to Google Play but doesn’t publish anything (kind of like a dry run). Since running this requires a Google Play Service Account Key which can should not be exposed to build jobs on PRs, I could only run it locally by manually checking out a PR and stuff.

Of course, there’s nothing wrong in running one check locally before merging such Pull Requests but it misses the whole point of having a CI flow in-place that provides instant feedback to contributors.

To address the problem, I recently wrote a simple validation logic in Golang that validates Fastlane Supply metadata against constraints enforced by the Google Play Store listings. I also published it as a GitHub action and a Docker image ready to be consumed. There hasn’t been much activity since I integrated it into the Noice’s source repository but it did help in mitigating issues in one problematic Pull Request.

I noticed that many apps on F-Droid use Fastlane supply metadata format so I just wanted to let other developers know about this. I hope this proves to be useful to others as well.

1 Like

F-Droid and Guardian Project use Weblate to translate the Fastlane metadata, it automatically shows the translator the errors, like length limits and other checks. I highly recommend that translation workflow because it means you don’t have to pay attention to the translation until its ready.


I came across Weblate earlier and I agree that it’s a more complete solution addressing the general problem. But I far as I could tell, and I could be wrong about this, its hosted version isn’t free for open-source. While the self hosted setup should work out great for big probjects like F-Droid and Guardian, I have to say that it can be an unbearable technical debt for smaller projects.

1 Like

Hosted is for open-source…F-Droid uses that… and many more FOSS apps for free

1 Like

Ohh! I missed that. I checked their pricing page and there it lists out all the paid plans.

1 Like

hosted weblate is free/gratis for free software, you just have to email
them to request an account.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.