# App download QR codes — one code for iOS and Android

> One QR code cannot contain two store links, so an app download code points at a redirect that detects the operating system and forwards accordingly. UseQR hosts that redirect for you, or you can host it yourself on your own domain — which is what we recommend for anything printed.

Source: https://useqr.app/app-download-qr-code · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Why a plain link does not work

A QR code holds exactly one string. An App Store URL sends Android users to a page they
cannot use; a Play URL does the same to iPhone users. Printing two codes means half your
audience scans the wrong one.

The only solution is a single URL that decides at request time:

```
if iOS      → https://apps.apple.com/app/id123456789
if Android  → https://play.google.com/store/apps/details?id=com.example
otherwise   → your landing page
```

## UseQR's redirect, and its honest limitation

UseQR generates a code pointing at `/go/app` with your store ids in the query string.
There is no database and no account — the destinations are in the URL itself, so we
cannot change where your code goes and there is nothing to expire.

The limitation is real and worth stating: that redirect depends on UseQR staying
online. For a sticker on a product box with a five-year life, host the redirect on your
own domain. Fifteen lines of server code, and then you own both ends of the chain
permanently. We would rather tell you that than have you print ten thousand stickers
that depend on us.

## Deep links into app content

If the app is already installed, a store link opens the store rather than the app —
poor experience. Universal Links (iOS) and App Links (Android) let a normal HTTPS URL
open the app directly when installed and fall back to the web when not. That is the
right target for a QR code on packaging, and it requires the association files
(`apple-app-site-association`, `assetlinks.json`) to be served from your domain.

## What actually drives installs

- **Say what the app does** next to the code. "Scan to download" is not a reason.
- **Put the code where the decision happens** — on the product, at the gate, on the
  table — not on a website, where a link is better.
- **Size it for the distance.** A code on a shelf-edge label scanned from 50 cm needs
  at least 5 cm.
- **Keep the redirect fast.** Every hop loses people.

## FAQ

### Can one QR code work for both the App Store and Google Play?
Not directly — a QR code holds one string. It must point at a redirect that detects the operating system and forwards to the right store.

### Should I use UseQR's redirect or my own?
Ours is fine for short-lived campaigns and posters. For anything printed with a long life, host the redirect on your own domain so nothing outside your control sits in the chain.

### What happens if the user already has the app?
A store link opens the store. Use a Universal Link or App Link instead so the app opens directly when installed and falls back to the web when not.

### Does a QR code install an app by itself?
No. It can only open a store listing or a page. The user still chooses to install.

## Try it

- https://useqr.app/app-download
- https://useqr.app/url
