Sorry about it, but I have to talk. I just made this merge request: New app: PsyMap (!41677) · Merge requests · F-Droid / Data · GitLab a pack of days ago. I read the guide for submmit, but even Google Play Store maybe easier. I have 2 apps on there. Why I can’t simply submmit my APK for you guys team? This is not a hate message, but a real question.
I can help you properly create the metadata for your app in a way that satisfies requirements. I will create a branch on my fork and try to get it right and then send you the yaml so you can update your version
As to why it’s “hard” and why you can’t just submit an APK, I think this will be better explained by someone else. Start with Reproducibility Quickstart Guide — reproducible-builds.org
They have one, see link
Just that Gitlab are being a$$holes and not allow them to run the pipeline
@Wennington123 we don’t know when it’s ready to run, we don’t get notified on updates just on comments, also there are many MRs and issues to take care, thank you for your patience
One thing I have noticed is that the apk in their release is added as a “other asset“. I think this is a problem for RB because the apk url in their release is https://expo.dev/artifacts/eas/j-hPJaYC7LjCMEcneO_R3FLkixr-hH9G9E2cuCxYA2U.apk - not versionable. Also RB fails for me locally with this app, but this is another issue.
Hi man, so many greats for you rapid response. This is my first app here, so I’m in troubles. I’ve seen your thread, and the pipeline was error again; I am checking up, maybe it was some mistake mine.
Categories:
- Science & Education
License: GPL-3.0-only
AuthorName: Wennington Dias
AuthorEmail: wenningtondiasx25@gmail.com
WebSite: https://gitlab.com/wenningtondiasx25/psymap
SourceCode: https://gitlab.com/wenningtondiasx25/psymap
IssueTracker: https://gitlab.com/wenningtondiasx25/psymap/issues
Changelog: https://gitlab.com/wenningtondiasx25/psymap/-/releases
AutoName: PsyMap
RepoType: git
Repo: https://gitlab.com/wenningtondiasx25/psymap.git
Builds:
- versionName: 1.0.0
versionCode: 1
commit: 509e201b30cb14fbde36e974ce87afd0fa0d8f56
sudo:
- echo "deb https://deb.debian.org/debian bookworm main" > /etc/apt/sources.list.d/bookworm.list
- apt-get update
- apt-get install -y -t bookworm openjdk-17-jdk-headless
- apt-get install -y npm
init: npm ci
output: android/app/build/outputs/apk/release/app-release-unsigned.apk
prebuild:
- sed -i -e '1a "expo":{"autolinking":{"android":{"buildFromSource":[".*"]}}},'
package.json
- npx expo prebuild --platform android --no-install
- sed -i -e '/signingConfig /d' android/app/build.gradle
scanignore:
- node_modules/react-native/sdks/hermesc/linux64-bin/hermesc
- node_modules/expo-modules-autolinking/scripts/android/autolinking_implementation.gradle
- node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle
- node_modules/@react-native-async-storage/async-storage/android/build.gradle
- node_modules/react-native-linear-gradient/android/build.gradle
- node_modules/react-native-safe-area-context/android/build.gradle
- node_modules/react-native-screens/android/build.gradle
- node_modules/react-native-svg/android/build.gradle
scandelete:
- node_modules
build:
- cd android
- gradle assembleRelease
AutoUpdateMode: Version
UpdateCheckMode: Tags
UpdateCheckData: app.json|"versionCode":\s*(\d+)|.|"version":\s*"([^"]+)"
CurrentVersion: 1.0.0
CurrentVersionCode: 1
Try this @Wennington123. It will pass CI. We just have to work on RB ![]()
First thing you should do is provide a versionable link to the signed binary. I suggest building it with gitlab pipelines. That way it will be easy to version by tag and easier to debug RB failures. The yaml above however should satisfy fdroid requirements (correct me if I’m wrong @Licaon_Kter ) and passes CI.
Note that nodejs repro apps are unicorns… I’d test, yes, but not hold wy breath ![]()
I will cleanup this a bit, because one of the lines im not really sure what it does. I copied it from the original, but if it builds without it I’d skip it.
EDIT: it seems the weird sed (sed -i -e '1a “expo”:{"autolink…) is necessary
Mannnn thankssss that solved it. Just passed in the pip now. @Licaon_Kter try run now; my pip works.
Categories:
- Science & Education
License: GPL-3.0-only
AuthorName: Wennington Dias
AuthorEmail: wenningtondiasx25@gmail.com
SourceCode: https://gitlab.com/wenningtondiasx25/psymap
IssueTracker: https://gitlab.com/wenningtondiasx25/psymap/issues
Changelog: https://gitlab.com/wenningtondiasx25/psymap/-/releases
AutoName: PsyMap
RepoType: git
Repo: https://gitlab.com/wenningtondiasx25/psymap.git
Builds:
- versionName: 1.0.0
versionCode: 1
commit: 509e201b30cb14fbde36e974ce87afd0fa0d8f56
sudo:
- apt-get update
- apt-get install npm
init: npm ci
output: android/app/build/outputs/apk/release/app-release-unsigned.apk
prebuild:
- sed -i -e '1a "expo":{"autolinking":{"android":{"buildFromSource":[".*"]}}},'
package.json
- sed -i '/jvmToolchain\|JavaVersion/s/17/21/' node_modules/@react-native/gradle-plugin/*/build.gradle.kts
node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
- npx expo prebuild -p android --clean
- sed -i -e '/signingConfig /d' android/app/build.gradle
scanignore:
- node_modules/react-native/sdks/hermesc/linux64-bin/hermesc
- node_modules/expo-modules-autolinking/scripts/android/autolinking_implementation.gradle
- node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle
- node_modules/@react-native-async-storage/async-storage/android/build.gradle
- node_modules/react-native-linear-gradient/android/build.gradle
- node_modules/react-native-safe-area-context/android/build.gradle
- node_modules/react-native-screens/android/build.gradle
- node_modules/react-native-svg/android/build.gradle
scandelete:
- node_modules
build:
- cd android
- gradle assembleRelease
AutoUpdateMode: Version
UpdateCheckMode: Tags
UpdateCheckData: app.json|"versionCode":\s*(\d+)|.|"version":\s*"([^"]+)"
CurrentVersion: 1.0.0
CurrentVersionCode: 1
unfortunately not, but the metadata above should satisfy, replaced jdk17, removed website etc.
allright, it passed just on builds; I will use this metadata.
@Wennington123 It looks like the only things left now are for you to translate the app information in fastlane and split APK per ABI. I can modiy the yaml to split per ABI in the evening today.
@Wennington123 Try this metadata. It builds for the the 3 ABIs. All that’s left should be to translate the fastlane information into English.
Categories:
- Science & Education
License: GPL-3.0-only
AuthorName: Wennington Dias
AuthorEmail: wenningtondiasx25@gmail.com
SourceCode: https://gitlab.com/wenningtondiasx25/psymap
IssueTracker: https://gitlab.com/wenningtondiasx25/psymap/issues
Changelog: https://gitlab.com/wenningtondiasx25/psymap/-/releases
AutoName: PsyMap
RepoType: git
Repo: https://gitlab.com/wenningtondiasx25/psymap.git
Builds:
- versionName: 1.0.0
versionCode: 11
commit: 509e201b30cb14fbde36e974ce87afd0fa0d8f56
sudo:
- apt-get update
- apt-get install npm
init: npm ci
output: android/app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk
prebuild:
- sed -i -e '1a "expo":{"autolinking":{"android":{"buildFromSource":[".*"]}}},'
package.json
- sed -i '/jvmToolchain\|JavaVersion/s/17/21/' node_modules/@react-native/gradle-plugin/*/build.gradle.kts
node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
- npx expo prebuild -p android --clean
- sed -i '/^android {/a splits { abi { reset(); enable true; universalApk false;
include "armeabi-v7a" } }' android/app/build.gradle
- sed -i '/reactNativeArchitectures=/d' android/gradle.properties
- echo 'reactNativeArchitectures=armeabi-v7a' >> android/gradle.properties
- sed -i -e 's/versionCode .*/versionCode $$VERCODE$$/' android/app/build.gradle
- sed -i -e '/signingConfig /d' android/app/build.gradle
scanignore:
- node_modules/react-native/sdks/hermesc/linux64-bin/hermesc
- node_modules/expo-modules-autolinking/scripts/android/autolinking_implementation.gradle
- node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle
- node_modules/@react-native-async-storage/async-storage/android/build.gradle
- node_modules/react-native-linear-gradient/android/build.gradle
- node_modules/react-native-safe-area-context/android/build.gradle
- node_modules/react-native-screens/android/build.gradle
- node_modules/react-native-svg/android/build.gradle
scandelete:
- node_modules
build:
- cd android
- gradle assembleRelease
- versionName: 1.0.0
versionCode: 12
commit: 509e201b30cb14fbde36e974ce87afd0fa0d8f56
sudo:
- apt-get update
- apt-get install npm
init: npm ci
output: android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk
prebuild:
- sed -i -e '1a "expo":{"autolinking":{"android":{"buildFromSource":[".*"]}}},'
package.json
- sed -i '/jvmToolchain\|JavaVersion/s/17/21/' node_modules/@react-native/gradle-plugin/*/build.gradle.kts
node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
- npx expo prebuild -p android --clean
- sed -i '/^android {/a splits { abi { reset(); enable true; universalApk false;
include "arm64-v8a" } }' android/app/build.gradle
- sed -i '/reactNativeArchitectures=/d' android/gradle.properties
- echo 'reactNativeArchitectures=arm64-v8a' >> android/gradle.properties
- sed -i -e 's/versionCode .*/versionCode $$VERCODE$$/' android/app/build.gradle
- sed -i -e '/signingConfig /d' android/app/build.gradle
scanignore:
- node_modules/react-native/sdks/hermesc/linux64-bin/hermesc
- node_modules/expo-modules-autolinking/scripts/android/autolinking_implementation.gradle
- node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle
- node_modules/@react-native-async-storage/async-storage/android/build.gradle
- node_modules/react-native-linear-gradient/android/build.gradle
- node_modules/react-native-safe-area-context/android/build.gradle
- node_modules/react-native-screens/android/build.gradle
- node_modules/react-native-svg/android/build.gradle
scandelete:
- node_modules
build:
- cd android
- gradle assembleRelease
- versionName: 1.0.0
versionCode: 13
commit: 509e201b30cb14fbde36e974ce87afd0fa0d8f56
sudo:
- apt-get update
- apt-get install npm
init: npm ci
output: android/app/build/outputs/apk/release/app-x86_64-release-unsigned.apk
prebuild:
- sed -i -e '1a "expo":{"autolinking":{"android":{"buildFromSource":[".*"]}}},'
package.json
- sed -i '/jvmToolchain\|JavaVersion/s/17/21/' node_modules/@react-native/gradle-plugin/*/build.gradle.kts
node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/JdkConfiguratorUtils.kt
- npx expo prebuild -p android --clean
- sed -i '/^android {/a splits { abi { reset(); enable true; universalApk false;
include "x86_64" } }' android/app/build.gradle
- sed -i '/reactNativeArchitectures=/d' android/gradle.properties
- echo 'reactNativeArchitectures=x86_64' >> android/gradle.properties
- sed -i -e 's/versionCode .*/versionCode $$VERCODE$$/' android/app/build.gradle
- sed -i -e '/signingConfig /d' android/app/build.gradle
scanignore:
- node_modules/react-native/sdks/hermesc/linux64-bin/hermesc
- node_modules/expo-modules-autolinking/scripts/android/autolinking_implementation.gradle
- node_modules/expo-modules-core/android/ExpoModulesCorePlugin.gradle
- node_modules/@react-native-async-storage/async-storage/android/build.gradle
- node_modules/react-native-linear-gradient/android/build.gradle
- node_modules/react-native-safe-area-context/android/build.gradle
- node_modules/react-native-screens/android/build.gradle
- node_modules/react-native-svg/android/build.gradle
scandelete:
- node_modules
build:
- cd android
- gradle assembleRelease
AutoUpdateMode: Version
UpdateCheckMode: Tags
VercodeOperation:
- '%c * 10 + 1'
- '%c * 10 + 2'
- '%c * 10 + 3'
UpdateCheckData: app.json|"versionCode":\s*(\d+)|.|"version":\s*"([^"]+)"
CurrentVersion: 1.0.0
CurrentVersionCode: 13
Really? wowww, just waiting the merge aprove now?
Unless a maintainer finds some other issue in the metadata. Then your app will be tested and if it passes that then it will be merged into the data repo and built by fdroidserver. You will be able to monitor that build process here.