QR Code Generator

Get your app installed from a single scan

Paste your App Store or Google Play link and this turns it into a code that opens your listing, ready to install. Put it on packaging, a poster or a receipt and people reach the download page without hunting through the store search.

The catch worth knowing first: a plain QR code is dumb — it holds one URL and can't tell whether an iPhone or an Android scanned it. If you encode the App Store link, an Android user lands somewhere that won't install your app.

Fill the form to generate a QR code

iOS and Android need different links

An apps.apple.com URL only makes sense on an iPhone; a play.google.com URL only makes sense on Android. A single code carrying one of them will disappoint half your audience.

For a one-code-for-everyone setup, encode a smart-routing landing page instead — a page you host that detects the visitor's OS and forwards them to the right store. Then the printed code stays the same while the page sorts out where each phone goes.

When one store link is fine

If your app only ships on one platform, or the code lives somewhere the audience is clearly on one OS — an iPad kiosk, an Android-only market — encode that single store URL directly. Simpler is better when you don't actually have a split audience.

Just be honest about the context. A code on a shared flyer is a mixed crowd; a code inside a device you control is not.

Smart-routing caveats

OS-detection pages aren't magic. They read the browser's user-agent, which can be wrong on some in-app browsers, tablets or privacy setups, occasionally sending a user to the wrong store. Always offer both store buttons on the landing page as a fallback so nobody dead-ends.

How to make an app download code

  1. Choose the destination URL. Decide between one store link or a routing page, then paste it into the url field. Don't drop in a deep link that only opens if the app is already installed.
  2. Use the public listing address. Copy the full apps.apple.com or play.google.com URL from the store, not a shortened share link that might expire.
  3. Test on both phones if you can. Scan with an iPhone and an Android. Confirm each reaches an install page, not an error or the wrong store.
  4. Export for the surface. SVG for printed packaging that must stay crisp, PNG for a digital ad or slide.

Technical details

  • Maximum characters: 2953
  • Recommended error correction: M (medium) — a store link is short enough that medium recovery keeps the code light while staying reliable on packaging.
  • Payload is a plain https link to a store listing or your own routing page.
  • OS detection happens on your landing page, never inside the QR code itself.

Frequently asked questions

Can one QR code send iPhone and Android users to different stores?
Not by itself — a code holds one fixed URL. To split by OS, encode a landing page you host that detects the device and forwards it. The code stays the same; the page handles routing.
Should I link the App Store or Google Play?
Neither alone if your audience is mixed. Link a routing page that offers both. Only encode a single store URL when you're sure the scanner is on that one platform, like an iOS-only kiosk.
Will the code open my app directly instead of the store?
No, not from a store URL — it opens the listing so the person can install or update. Deep links that jump into an installed app only work if the app is already there, so they're a poor choice for new installs.
Why did an Android user get an error scanning my code?
Almost certainly because the code holds an Apple App Store link, which Android can't open as an install page. Swap to a routing page or generate a separate Google Play code for Android surfaces.
Do I need a shortened link for the store URL?
No. Store URLs are long but the code handles them fine. Shorten only if you want a lighter, bolder pattern for small print — and use a short link you control, not a random shortener that may vanish.
Does the code break when I release an app update?
No. The listing URL stays the same across updates, so the code keeps pointing to your current version. It only breaks if you pull the app or change its store URL entirely.

See also

Related generators