Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
<p align="center">
<a href="https://github.com/JuggyBob/DiscountHunterAndroid/releases/latest">
<img src="https://img.shields.io/github/v/release/JuggyBob/DiscountHunterAndroid?label=Download&color=2ea44f&style=for-the-badge" alt="Latest release" />
</a>
<img src="https://img.shields.io/badge/Android-7.0%2B-3DDC84?style=for-the-badge" alt="Android 7.0+" />
<img src="https://img.shields.io/badge/License-Apache%202.0-D22128?style=for-the-badge" alt="Apache 2.0" />
</p>

**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-<version>.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
```

Expand Down
29 changes: 24 additions & 5 deletions apk/README.md
Original file line number Diff line number Diff line change
@@ -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-<version>.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
Expand Down
Loading