Targets: Codeberg release (signed APK), Google Play (AAB), F-Droid (source).
Version is versionCode/versionName in app/build.gradle.kts (1 / 1.0.0).
keytool -genkeypair -v -keystore ~/keys/nonono-upload.jks \
-alias nonono -keyalg RSA -keysize 4096 -validity 10000
Local release builds read it from env (unset = unsigned, which is what F-Droid wants):
export NONONO_KEYSTORE=~/keys/nonono-upload.jks
export NONONO_KEYSTORE_PASSWORD=... NONONO_KEY_ALIAS=nonono NONONO_KEY_PASSWORD=...
./gradlew :app:assembleRelease :app:bundleRelease
# app/build/outputs/apk/release/app-release.apk (Codeberg)
# app/build/outputs/bundle/release/app-release.aab (Play)
CHANGELOG [1.0.0] and fastlane/.../changelogs/1.txt are updated, then:
git push --force-with-lease origin main
git tag -fa v1.0.0 -m "Nonono 1.0.0" && git push -f origin v1.0.0
(History was rewritten during development, hence force.)
CI (.woodpecker/release.yml) builds a signed APK+AAB on the v* tag and
attaches the APK to the release. First enable Woodpecker for the repo and add
secrets: nonono_keystore_b64 (base64 -w0 nonono-upload.jks),
nonono_keystore_password, nonono_key_alias, nonono_key_password,
codeberg_token (repo-write scope). If CI is not set up yet, do it manually:
berg release create v1.0.0 --title "Nonono 1.0.0" --notes-file fastlane/metadata/android/en-US/changelogs/1.txt
berg release upload v1.0.0 app/build/outputs/apk/release/app-release.apk
- Play Console developer account (one-time fee).
- Create app, upload the AAB to the internal-testing track; enrol in Play App Signing.
- Listing copy is in
fastlane/metadata/android/en-US/(title, short, full). - Privacy policy URL: host
PRIVACY.md, e.g.https://codeberg.org/codegax/Nonono/raw/branch/main/PRIVACY.md. - Data safety: no data collected, no sharing. Content rating: complete the questionnaire (offline puzzle, no UGC). Category: Games / Puzzle.
- Screenshots + 512 icon + 1024x500 feature graphic: capture from a release
build (see
fastlane/metadata/android/en-US/images/README.md).
- Ensure the repo is public on Codeberg with the
v1.0.0tag pushed. - Submit
metadata/dev.codegax.nonono.ymlas a merge request to https://gitlab.com/fdroid/fdroiddata (an RFP). F-Droid builds from source and signs with its own key; no keystore needed. The listing text/graphics are read fromfastlane/. No proprietary dependencies (verified).
Increment versionCode and versionName, add a CHANGELOG entry plus
fastlane/.../changelogs/<versionCode>.txt, tag vX.Y.Z, push the tag.