android-client: a release-signed APK, published through the server
Release builds had no signingConfig, so assembleRelease produced an APK that
Android refuses to install. Sign with a key kept out of the repo: the keystore
lives in ~/.navi-android/, and android-client/keystore.properties (gitignored,
600) points at it and carries the passwords. A clone without that file still
builds — it just gets an unsigned APK, which is the right thing to fail into
for someone who has no business signing a release.

tools/publish-apk.sh builds the release APK into webclient/public/download/
and writes a JSON sidecar (version, size, sha256, build time) for the settings
page to read. The server mounts that directory at /download, so the APK ships
with a plain git pull like everything else. dist/download is ignored: vite
copies public/ into dist/ on every build, and serving the copy out of public/
means one binary in git instead of two.
1 parent c371ba1 commit 431f60c8d26b5748eb642f8648d656a3a9f3bfa7
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 4 hours ago
Showing 7 changed files
View
.gitignore
View
android-client/.gitignore
View
android-client/app/build.gradle.kts
View
android-client/tools/publish-apk.sh 0 → 100755
View
navi/main.py
View
webclient/public/download/navi-android.apk 0 → 100644
Not supported
View
webclient/public/download/navi-android.json 0 → 100644