From 77850bf23d4f80c0dacac6d3d79b42333f2e2e4d Mon Sep 17 00:00:00 2001 From: JuggyBob Date: Sun, 11 Oct 2026 10:16:30 +0200 Subject: [PATCH] docs: route downloads to the release assets, not the repo A binary committed to a repository is served through GitHub's raw file path, which a phone browser refuses or saves under the wrong name. Release assets are served as real downloads with the correct MIME type and filename. The Release workflow builds and attaches the APK for every tag, and GitHub generates the source zip and tarball automatically, so the Releases page now carries everything a user needs. Verified against v1.0.0: discount-hunter-1.0.0.apk HTTP 200, application/vnd.android.package-archive, attachment; filename=discount-hunter-1.0.0.apk, 2.87 MB Source code (zip) HTTP 200, application/zip The downloaded APK was installed on an emulator and launches with no crash. --- README.md | 25 +++++++++++++++++++++---- apk/README.md | 29 ++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0adae29..b2be796 100644 --- a/README.md +++ b/README.md @@ -36,16 +36,33 @@ games to watch their prices. ## Download -Pre-built release APKs live in [`apk/`](apk/). The app is unsigned-by-CI, so Android will ask you to -allow installation from your file manager the first time. +

+ + Latest release + + Android 7.0+ + Apache 2.0 +

+ +**Grab it from the [Releases page](https://github.com/JuggyBob/DiscountHunterAndroid/releases/latest) +→ Assets.** That is the only place a phone can actually download it from — GitHub serves release +assets as real downloads, whereas a binary committed to a repository is fetched through the repo's +raw file path, which a phone browser will either refuse or save with the wrong name. -- [`app-release.apk`](apk/release/app-release.apk) — the current release +Every release contains: -Or build it yourself: +- **`discount-hunter-.apk`** — the optimised release build +- **Source code (zip)** and **(tar.gz)** — generated by GitHub from the tagged commit + +The APK is unsigned, so Android asks you to allow installation from your file manager the first +time. See [`apk/README.md`](apk/README.md) for the step-by-step. + +### Build it yourself ```bash git clone https://github.com/JuggyBob/DiscountHunterAndroid.git cd DiscountHunterAndroid +echo "sdk.dir=/path/to/Android/sdk" > local.properties ./gradlew assembleRelease ``` diff --git a/apk/README.md b/apk/README.md index a74b535..7e5905e 100644 --- a/apk/README.md +++ b/apk/README.md @@ -1,14 +1,33 @@ # Release APKs -Pre-built APKs for Discount Hunter, so you can install and try the app without a build environment. +## Where to get the app -| File | Version | Notes | -|------|---------|-------| -| [`release/app-release.apk`](release/app-release.apk) | 1.0.0 | Optimised release build | +**Download from the +[Releases page](https://github.com/JuggyBob/DiscountHunterAndroid/releases/latest) → Assets**, not +from this folder. + +Release assets are served to a phone as real downloads. A binary committed to a repository is not: +GitHub fetches it through the repository's raw file path, so a phone browser tends to either refuse +it or save it under the wrong name and extension. That is the whole reason this file exists — to +point somewhere that works. + +Every release carries: + +| Asset | What it is | +|-------|------------| +| `discount-hunter-.apk` | The optimised release build | +| Source code (zip) | Generated by GitHub from the tagged commit | +| Source code (tar.gz) | Same, as a tarball | + +The APK is built by the `Release` workflow in CI, not uploaded by hand, so the file you download is +the one the tests and lint ran against. + +The copy in this folder is a local build artefact kept for convenience. It is not what the README +links to, and it will drift from the releases. ## Installing -**These APKs are unsigned**, so Android will refuse them the first time. That is expected: +**The APKs are unsigned**, so Android will refuse them the first time. That is expected: 1. Tap the downloaded `.apk` in your file manager. 2. Android will say the file is from an unknown source. Tap **Settings** → allow your file manager