I’m quite new to Android dev, and now my first app is finished (it looks like an advanced Hello World - but fun to create and to use !), I try to publish it on F-Droid.
But the GitLabl “Checkupdates” job fails with “FDroidException: Couldn’t find any version information”.
But I can find on the build log (https://gitlab.com/psa-jforestier/fdroiddata/-/jobs/2005695714) that the task is fetching the proper versions from app/build.gradle :
2022-01-23 14:49:47,841 DEBUG: Parsing manifest at 'build/org.jfo.makesomenoise/app/build.gradle'
2022-01-23 14:49:47,841 DEBUG: ..got package=None, version=1.2, vercode=12
(...)
2022-01-23 14:49:48,900 DEBUG: Parsing manifest at 'build/org.jfo.makesomenoise/app/build.gradle'
2022-01-23 14:49:48,901 DEBUG: ..got package=None, version=1.1, vercode=1
(...)
`2022-01-23 14:49:48,903 ERROR: ...checkupdate failed for org.jfo.makesomenoise : Couldn't find any version information`
On the GitHub.com repository, I created a Tag named “1.2” so it should also match what I indicated on the YML file.
I really dont understand why it fails, maybe it is because it the 1st attempt to publish, and there is no “newer” version available ? But how should I submit a completly new application ?
Nope, still same error. What should be the value of the commit entry in yml ? I tried with the GitHub commit id, and with the Tag name (“1.2”), and I got the same error.
From the error log of the jobs:
2022-01-23 15:38:19,539 ERROR: ...checkupdate failed for org.jfo.makesomenoise : Couldn't find any version information
2022-01-23 15:38:19,540 DEBUG: Traceback (most recent call last):
File "/builds/psa-jforestier/fdroidserver/fdroidserver/checkupdates.py", line 644, in main
checkupdates_app(app)
File "/builds/psa-jforestier/fdroidserver/fdroidserver/checkupdates.py", line 432, in checkupdates_app
(version, vercode, tag) = check_tags(app, pattern)
File "/builds/psa-jforestier/fdroidserver/fdroidserver/checkupdates.py", line 218, in check_tags
raise FDroidException(_("Couldn't find any version information"))
Error in " checkupdates.py, line 218, in check_tags should indicate an error with tags, but I really dont understand what must match with what.
I saw in the logfile “package=None”, then I compared your application I’d, in the build.gradle it is " org.jfo.app.makesomenoise" but the metadata yaml is different " org.jfo.makesomenoise".
Thank you for your insights. I renamed the metadata file according to the right package name.
The “checkupdates” task still failed. I removed “submodules” because I dont use it. Also, I did some tries with the “CurrentVersion” and “CurrentVersionCode” (trying to set them < the Builds number) => did not work.
I look at the “fdroid build” task and saw issues with sourceCompatibility in build.gradle : by default, Android Studio use VERSION_1_8 but the task complains about “Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8” . I changed it on the source repo, but the task still have the same error. I saw a similar problem here, will have a look.
The “lint” task also is in error, but the log do not contains usefull information.
The lint is very strict, but all the info you need is in the logs. It tells you exactly what changes it is expecting, it wants you to replace what it marked red with what it marked green:
Also, it is much preferred to put the description in the Fastlane metadata instead of the F-Droid Data .yml. You are missing title.txt, short_description.txt and long_description.txt in makesomenoise/fastlane/metadata/android/en-US at main · psa-jforestier/makesomenoise · GitHub (for comparison, look at one of my apps). If you put it in your repo you can also get rid of the Name, Summary and Description fields in the Data .yml and just update it in your repo without having to talk to us
Thank for your help (and for your app, that i’m using a lot ).
I cant make the fdroidserver tool chain work, neither run rewritemeta on my computer, but I notice the yamllint program complains about line > 80 chars. I finally remove all the long text and use the 3 separate files you indicate. I also remove some empty lines, or at the contrary add some empty lines like suggested by the red/green git diff.
And after several tries, and recreating the tag/release on the GitHub source side,it finally goes green ! The “lint” task is so sensitive …
The “fdroid build” task is also green, and I can see the generated APK in the assets (on the “tmp” folder), but it doesnt work on the phone => crash at installation “an error occurred during package analysis”.
Packages generated by CI are unsigned, you still need to manually sign them with apksigner. I don’t remember how that works though, so hopefully someone else can give more detailed instructions.