Adding my first app to f droid

I’m trying to add my app to F-Droid I did the steps according to this

Steps I did:

  1. fdroid import --url https://github.com/LuigiTheHunter/DSAAssistant/ --subdir app
  2. Then I edited the metadata file according to this in the metadata folder.
  3. I ran fdroid readmeta
  4. I ran fdroid rewritemeta ID where ID is my correct package ID (I checked this)
  5. I had to commit, because otherwise the next step wouldn’t work
  6. I ran fdroid checkupdates ID where ID is my correct package ID (I checked this)
  7. Then I ran fdroid lint ID where ID is my correct package ID (I checked this)
    Where I always get this message:

“metadata/srclibs/” has no matching metadata file!
“metadata/metadata/” has no matching metadata file!
“metadata/tmp/” has no matching metadata file!

If you need to see my metadata I can upload it aswell. Thanks.

Post the metadata!

Always run lint before rewritemeta

You don’t need to commit, use allow-dirty for checkupdate

Here is the requested metadata:

Categories:

  • Games
    License: GPL-3.0-or-later
    AuthorName: Phil Roggenbuck
    AuthorEmail: ceo@roggstar.eu
    SourceCode: https:// github com/LuigiTheHunter/DSAAssistant/
    IssueTracker: https:// github com/LuigiTheHunter/DSAAssistant//issues
    Donate: https:// www.paypal me/proggenbuck

AutoName: DSA Assistent
Summary: Ein Helfer für das Schwarze Auge
Description: |-
Ein Helfer für das Schwarze Auge.

'''HAUPTFUNKTIONEN:'''
* Geldbeutel Manager 2.0
* Kampfszenen und Wunden Manager 1.2
* Würfeln der wichtigsten Würfel 1.0
* GM Ini Manager 1.0

RepoType: git
Repo: https:// github com/LuigiTheHunter/DSAAssistant/

Builds:

  • versionName: Erebor
    versionCode: 49
    commit: v49
    subdir: app
    gradle:
    • yes

AutoUpdateMode: Version v%v
UpdateCheckMode: Tags
CurrentVersion: Erebor
CurrentVersionCode: 49

I had to remove the dots and add spacebars to the links because I’m not allowed to post more than 2 Links in one post.

And thanks for the tip to run lint before rewritemeta :wink: and for the checkupdate tip :sunflower:

What is this app about?

It’s about a variety of DnD. Called The Dark Eye, or in german Das schwarze Auge.

I remembered the title after I posted lol.

Now AutoUpdateMode: Version v%v would need to be v%c since v means versionName and yours are rather special (not numeric, not related to the actual Tag). So we change to c and that will use `versionCode’ instead.

Builds fine if we nuke the Test thing in build.gradle by adding under gradle:
prebuild: sed -i -e '/[tT]est/d' -e '/withoutimplement/,+2d' build.gradle

Or you fix it in a different way, the error that I see is:

> Task :app:compileReleaseSources
> Task :app:lintVitalRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:lintVitalRelease'.
> Could not resolve all dependencies for configuration ':app:debugAndroidTestRuntimeClasspath'.
   > Could not load module metadata from /home/strech/.gradle/caches/modules-2/metadata-2.69/descriptors/com.android.support.test.espresso/espresso-core/2.2.2/6740fe48b44caed96d7f50b66ff7b0b5/descriptor.bin

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2s
13 actionable tasks: 13 executed
1 Like

First of all thanks for clearing things up with the AutoUpdateMode. Interesting that there is this error. On my system it builds fine with fdroid build. I will go ahead and try what you suggesting this morning. Thanks very much in advance. I will post back when I make progress. Thanks alot!

Can you explain the https://nolt.io/ integration?

Regarding the error maybe I’m missing something…but what?

Hmh, well where did you dig that up :smiley: I set this up months ago for testing. Today I found the old nolt.io links again and removed them. They where just for people to add Feature Requests and Bugs but not are not used anymore. I’m trying to shift to Github Issues now :slight_smile:

1 Like

In the built APK ofcourse: VirusTotal

1 Like

Uh you are right. The link is yet to be removed from there :slight_smile: Thanks. Cool feature from Virustotal I did not know about this until now -

Thanks this fixed it. I actually wanted to get some sleep. But this whole F-Droid thing just makes me so happy, that I couldn’t resist to try it again right now 3 in the morning :blush:

Thank’s for your help again!

One more question now, I updated the app and made a new release with a tag in github. But there is no update available after waiting several days for it on F-Droid.

On my F-Droid badge on my readme there is the new version. But in the actual store there is none.

You changed the way you tag, I’ll have to verify but first version was “Erebor” while next version is “v51”, this confuses the update bot,

Yeah I thought of that already. But because you said my Version/Tag Names are “yours are rather special” I changed it to an more easy understanding xD.

So now I need to edit this in the manifest again?

Looks like Autoupdate works locally, not sure why it wasn’t picked up before (maybe you’ve tagged after the fdroidupdate checker run?)

Anyway

DEBUG: Directory: build/eu.roggstar.luigithehunter.dsaassistent
DEBUG: > git remote set-head origin --auto
DEBUG: Directory: build/eu.roggstar.luigithehunter.dsaassistent
DEBUG: > git checkout -f v51
DEBUG: Directory: build/eu.roggstar.luigithehunter.dsaassistent
DEBUG: > git clean -dffx
DEBUG: ...fetch auto name from build/eu.roggstar.luigithehunter.dsaassistent
DEBUG: Parsing manifest at 'build/eu.roggstar.luigithehunter.dsaassistent/build.gradle'
DEBUG: ..got package=None, version=None, vercode=None
DEBUG: Parsing manifest at 'build/eu.roggstar.luigithehunter.dsaassistent/app/src/main/AndroidManifest.xml'
DEBUG: ..got package=eu.roggstar.luigithehunter.dsaassistent, version=None, vercode=None
DEBUG: Parsing manifest at 'build/eu.roggstar.luigithehunter.dsaassistent/app/build.gradle'
DEBUG: ..got package=eu.roggstar.luigithehunter.dsaassistent, version=Mister English, vercode=50
DEBUG: Adding possible subdir app
DEBUG: fetch_real_name: Checking manifest at build/eu.roggstar.luigithehunter.dsaassistent/app/src/main/AndroidManifest.xml
DEBUG: ...got autoname 'DSA Assistent'
INFO: ...updating to version Mister English (50)
INFO: ...auto-generating build for Mister English
INFO: Finished

…you tagged v51 but not updated versionCode…so it updates like this:

  - versionName: Mister English
    versionCode: 50
    commit: v50
    subdir: app
    gradle:
      - yes
    prebuild: sed -i -e '/[tT]est/d' -e '/withoutimplement/,+2d' build.gradle
1 Like

Ok then I’m editing the version code accordingly. Thanks for taking so much time looking into this. And for helping me getting started here :blush:

So do I need to change the metadata for it to work now, since I’m now going to use the v?? Tags as versions?