M6: release signing, privacy policy and Play release checklist

This commit is contained in:
2026-10-14 16:44:58 +02:00
parent 3e39fc9b86
commit e2cfb5d9ca
5 changed files with 243 additions and 5 deletions
+24 -4
View File
@@ -12,10 +12,9 @@ no advertising or tracking SDKs.
## Status
**M5 — analysis, archives & viewers: done.** Recursive storage usage, ZIP creation and
ZIP/TAR/GZ/BZ2/XZ extraction (with zip-slip protection), Coil thumbnails, an image viewer
and a text editor. Covered by 141 JVM unit tests (26 added here). See
[docs/ROADMAP.md](docs/ROADMAP.md) for the full milestone plan.
**M6 — release config & Play readiness: done.** Signed, R8-minified `.aab` builds; the Play
release checklist (including the "All files access" declaration) and the privacy policy are
written. See [docs/ROADMAP.md](docs/ROADMAP.md) for the full milestone plan.
## Tech stack
@@ -78,6 +77,27 @@ R8/minification but produces an unsigned artefact.
Not tracked: `local.properties`, `keystore.properties`, `*.jks`, build outputs.
## Releasing
Release signing is driven by the git-ignored `keystore.properties` (see
`keystore.properties.example`). Without that file the release build still runs R8 and
resource shrinking, but produces an unsigned artefact that cannot be uploaded.
```bash
./gradlew :app:bundleRelease # Play upload bundle (.aab)
./gradlew :app:assembleRelease # APK, for local checks
# Audit what is actually shipped — in particular that there is no INTERNET permission:
$ANDROID_HOME/build-tools/36.0.0/aapt2 dump permissions \
app/build/outputs/apk/release/app-release.apk
```
Read [docs/PLAY_RELEASE_CHECKLIST.md](docs/PLAY_RELEASE_CHECKLIST.md) before uploading.
Step 4 is the one that matters most for this app: a file manager must declare **"All files
access"** through Play's Permissions Declaration Form, and have the core purpose documented
in its store description. [PRIVACY.md](PRIVACY.md) is written to match the shipped
permissions.
## Licence
Proprietary — all rights reserved.