How to Create a QR Code for an App Download (iOS and Android)

Create a single QR code that sends iOS users to the App Store and Android users to Google Play — with scan tracking so you know which placements actually drive installs.

Guides
6 min read
By Linkbreakers
Updated June 12, 2026

Short answer

Create a dynamic QR code in Linkbreakers with device-based routing: iOS scans go to your App Store URL, Android scans go to your Google Play URL. Because it's a single code, you print one image but each platform gets the right destination automatically. Scan analytics show you which placements drive installs, broken down by device type.

How it works

A QR code for an app download is a standard dynamic QR code with a conditional routing rule. When someone scans it:

  1. Linkbreakers detects the device OS from the scan request.
  2. iOS users are redirected to your Apple App Store listing.
  3. Android users are redirected to your Google Play listing.
  4. Any other device (desktop, tablet, unknown OS) hits a fallback URL you define — typically your app's marketing landing page.

This works because dynamic QR codes encode a short redirect URL, not the App Store URL itself. All routing logic runs on the server, invisible to the scanner.

If you paste your App Store URL into a static QR code, Android users who scan it will land on a page their device can't open. A store URL doesn't cross platforms — Apple links only work on iOS, Google Play links only work on Android. Device-conditional routing solves this with one printable code.

Approach iOS Android Desktop
Static link to App Store ✓ Works ✗ Error page ✗ Error page
Static link to Google Play ✗ Error page ✓ Works ✗ Error page
Linkbreakers device routing ✓ App Store ✓ Google Play ✓ Fallback page

Step-by-step

1. Gather your store URLs

Before you create the QR code, collect both store links:

  • App Store: Open your app listing in App Store Connect, or search your app in a browser and copy the https://apps.apple.com/... URL.
  • Google Play: Find your app in the Play Store and copy the https://play.google.com/store/apps/details?id=... URL.
  • Fallback URL: Your app's website or a universal landing page that works on any device.
  1. In your Linkbreakers dashboard, create a new Link and open the workflow editor.
  2. Add a Device condition step. See how to use device conditions for the full walkthrough.
  3. Set the condition to route iOS traffic to your App Store URL.
  4. Add a second branch for Android traffic pointing to your Google Play URL.
  5. Set the fallback destination to your marketing landing page.
  6. Name the link something descriptive like "App download – conference flyer" so it's identifiable in analytics later.

Each physical surface — a flyer, a poster, a product box, a slide — should have its own Linkbreakers link. This lets you compare scan volume and install rates by channel:

Placement Scan intent
Product packaging High — customer already holds the product
Conference or event flyer Medium — depends on event relevance
In-store POS display High — purchase-moment intent
Direct mail piece Medium — depends on audience quality

Using separate links per placement takes an extra minute to set up and gives you data that's otherwise impossible to reconstruct later.

4. Generate and download the QR code

Once the link is configured, open the QR code designer in Linkbreakers:

  • Download as SVG for print materials (scalable, no pixelation at any size).
  • Download as PNG for digital surfaces: website banners, email campaigns, slide decks.
  • Add your app icon or brand logo in the center of the code to increase recognition.
  • Use high-contrast colors — dark module color on a light background. Avoid low-contrast combinations that reduce scannability. See QR code scanability best practices for full guidance.

Minimum print size for reliable scanning: 2 × 2 cm (about 0.8 × 0.8 inches). For large-format prints like posters, increase proportionally.

5. Track scans and installs

Every scan is logged in your Linkbreakers dashboard with:

  • Device type (iOS vs Android) — shows your actual platform mix.
  • Timestamp — identify peak scan times by placement.
  • Geographic location — see which cities or regions drive the most engagement.
  • Unique vs. repeat scans — distinguish genuine new users from repeat interactions.

Linkbreakers tracks scans, not installs. To close the loop, use UTM builder in Linkbreakers to append campaign parameters to your store URLs, then match them to install events in AppsFlyer, Adjust, or Firebase.

Limits and caveats

App Store links require iOS to open correctly. Even with device routing, if a desktop user scans and your fallback is an App Store URL, they'll see an error. Always set a working fallback URL.

Routing relies on the User-Agent header. Custom browsers or OS spoofing can cause misroutes, but this is rare for typical consumer devices.

Scan count ≠ install count. Someone can scan your code and close the App Store without installing. Scan metrics measure interest, not conversions. Pair Linkbreakers scan data with your app analytics platform to calculate scan-to-install conversion rates.

App Store and Play Store redirects add one step. The OS-level prompt to open the store app adds friction. Test the full flow on both iOS and Android before printing any materials.

Dynamic codes require an active Linkbreakers account. If your subscription lapses, all printed codes stop working. A branded short domain (e.g., get.yourapp.com) makes the code look more trustworthy in marketing materials.

Frequently asked questions

Can I use one QR code for both iOS and Android?

Yes — that's exactly what device-based routing in Linkbreakers does. One code, one image to print, two destinations based on the scanner's OS. See how to use device conditions for setup details.

What should I do if my app is only on one platform?

Set the QR code destination to your single store URL and use the fallback for the other platform. For example, if you're iOS-only, route Android users to a page that explains the app isn't available on Android yet (or prompts them to sign up for a waitlist). Don't send Android users to a broken App Store link.

How do I track which marketing channel drives the most installs?

Create a separate Linkbreakers link for each campaign placement. In your store URLs, append UTM parameters using the UTM builder to pass campaign data into your mobile attribution platform. This connects scan events in Linkbreakers to install events in AppsFlyer, Adjust, or Firebase.

Can I update the store URL later without reprinting?

Yes. Because the QR code points to a Linkbreakers dynamic link, you can update the destination URLs in your dashboard at any time. If your app's Play Store ID or App Store URL changes, update the link — the printed QR code automatically follows the new destination.

What size should I print the QR code for packaging?

For product packaging, aim for at least 2 × 2 cm on smaller surfaces and 3 × 3 cm or larger when space allows. Smaller codes work but are unreliable in poor retail lighting. See QR code size and print dimension benchmarks for detailed size-to-scan-reliability data.

About the Author

LS

Laurent Schaffner

Founder & Engineer at Linkbreakers

Passionate about building tools that help businesses track and optimize their digital marketing efforts. Laurent founded Linkbreakers to make QR code analytics accessible and actionable for companies of all sizes.