App Store QR Code Generator
App-install QR for iOS and Android in one scan
Paste your App Store URL, your Play Store URL, and a fallback landing page. The QR encodes the fallback so a UA-sniffing redirect on your host can route iOS to the App Store and Android to Google Play. No more wrong-store dead ends.
What to encode
Style
Frame
- Files never leave your device
- Runs in your browser
- Free, no signup
How it works
- 1
Paste store URLs and a fallback
iOS App Store URL, Google Play URL, and a fallback landing page on your domain.
- 2
Host the UA-sniff redirect
10-line Cloudflare Worker reads User-Agent and 302s to the right store. Code in the guide.
- 3
Download PNG or SVG
PNG for digital, SVG for print posters. The QR encodes your fallback URL.
What this app QR generator does
One QR, two stores
UA-sniffing redirect on your host routes iOS scans to App Store, Android to Play. No wrong-store dead ends.
Universal Links friendly
Pair with Universal Links / App Links and the QR opens your app directly for installed users.
UTM-attribution ready
Append UTMs to your fallback URL. The redirect passes them through; your app reads them on first launch.
Where this helps
Print campaigns
Magazine and newspaper ads with a single QR. Print readers scan, the right store opens.
Outdoor posters
Billboards and pull-up banners. One scan and the right store opens regardless of device.
Trade-show booths
QR on the table-top sign. Visitors scan and download the app without typing the name.
Product packaging
Companion-app QR on the box. New owners scan and install without searching the store.
Email signatures
Inline QR linking to the iOS / Android download landing. Recipients install from a printed email.
Influencer collabs
Creator's QR points to a UTM-tagged landing. Attribution holds across the install flow.
Tips that help
- 1
Host the redirect on your own domain
Third-party redirect domains expire or get blocked. A worker on your own domain stays under your control.
- 2
Use Universal Links for installed users
The same QR opens the app when installed. Re-engagement and acquisition from one print.
- 3
Tag the URL with UTMs
utm_source=qr, utm_medium=print, utm_campaign=launch-poster. Read on first launch in-app.
- 4
Test on an old phone
UA sniffing fails on weird browsers. Keep a printed App Store badge plus Play badge on the landing page as the safety net.
How to route one QR to two stores
App-install QRs are a single-URL container. To send iOS scans to the App Store and Android scans to Play, you host a tiny landing page that reads the User-Agent header and redirects. The QR encodes that landing URL. The user never sees a wrong-store page.
The minimal UA-sniff redirect
A 10-line Cloudflare Worker (or Vercel Edge handler) is enough. The endpoint reads `request.headers.get('user-agent')`, branches on iOS / Android / other, and returns a 302 to the right store.

Pseudocode: `const ua = request.headers.get('user-agent') || ''; if (/iPhone|iPad|iOS/i.test(ua)) return Response.redirect(IOS_URL, 302); if (/Android/i.test(ua)) return Response.redirect(ANDROID_URL, 302); return Response.redirect(FALLBACK, 302);`
Host the worker at `https://yourdomain.com/dl` (or similar) and encode that URL in the QR. The redirect is invisible to the user; they land on the right store.
Why not encode the store URL directly
An App Store URL on a Google Pixel takes the user to apple.com's mobile web page saying 'Open in App Store'. That page does nothing on Android because Android has no App Store. The user closes the page and you lost the install.
A Play Store URL on an iPhone shows the Google Play web page, which iOS cannot install from. Same dead end.
The router is the only path that does not waste a scan on the wrong store. Five lines of code, hosted free on a Worker, saves you the install you spent print money to earn.
Universal Links and App Links smooth the install path
iOS Universal Links and Android App Links open your app directly when installed and fall back to a hosted URL when not. They use the same domain as your redirect host, with an `apple-app-site-association` file (iOS) and an `assetlinks.json` file (Android) advertising the routing.
When you ship Universal Links plus the UA-sniff router, the QR scan opens the app for installed users and routes uninstalled users to the right store. A single QR serving install and re-engagement.
Read moreRead less
If you do not have a host yet, point the QR at the fallback URL with App Store and Play Store badges side by side. Two taps, not one, but still better than the wrong-store dead end.
Tracking and attribution
Append UTMs to the encoded URL: `?utm_source=qr&utm_medium=print&utm_campaign=launch-poster`. The redirect Worker passes the query string through to the store, and your app reads it on first launch via deep-link attribution.
For granular install tracking, services like Branch, Adjust and AppsFlyer expose a long URL with their own UA routing plus attribution cookie. You encode that long URL in the QR and the service handles the rest. The cost is an SDK in your app.
For a simple campaign, the UTM-on-Worker approach is enough. Trade-off cost against the attribution depth you need.
Frequently asked questions
Honest answers to what people ask before using this tool.
Further reading
Independent references if you want to go deeper on the formats and tradeoffs.
Related tools
- QR code generator
All payload types in one tool.
- QR code with logo
Brand the install QR with your app icon.
- vCard QR code generator
Save brand contact alongside the app install.
- Location QR code generator
Pair with a venue pin on event banners.
- App Store screenshot generator
Build the screenshots for the App Store listing the QR points to.
- Play Store screenshot generator
Build the screenshots for the Play Store listing.