---
title: "How to Create a QR Code for an App Download (iOS and Android)"
description: "Make one QR code that sends iPhones to the App Store, Android phones to Google Play and every other device to your website, with a Device Platform condition. Exact steps, how to test it, and what we measured on 43,841 scans."
canonical: "https://linkbreakers.com/help/article/how-to-create-a-qr-code-for-an-app-download"
last-updated: 2026-11-02
---

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

> Make one QR code that sends iPhones to the App Store, Android phones to Google Play and every other device to your website, with a Device Platform condition. Exact steps, how to test it, and what we measured on 43,841 scans.

Video: [How to make one QR code that opens the App Store on iPhone and Google Play on Android](https://www.youtube.com/watch?v=CjSVFfSPQBM)

## Short answer

Make a dynamic QR code in Linkbreakers and add a **Device Platform** condition right after the scan. iPhones go down the iOS branch to your App Store link, Android phones go down the Android branch to your Google Play link, and every other device takes **Other Platforms** to your website. You print one image; each phone gets its own store. It works on every plan, including Free, and you can change either store link after printing.

Keep the website fallback. Of 43,841 human scans of Linkbreakers QR codes we measured between 27 July and 25 October 2026, 62.9% came from iOS, 27.0% from Android, 8.3% from Windows, macOS, Linux or ChromeOS and 1.8% could not be identified: about one scan in ten would hit a store page it cannot open without that fallback.

:::try-ai-prompt {"prompt":"Create a QR code that sends people to my app download: iPhone users to the App Store, Android users to Google Play, and everyone else to a page with both links.","description":"Try building the device-routed download QR code with the AI builder."}:::

## How it works

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

1. Linkbreakers reads the phone's platform from the scan request.
2. iOS visitors are redirected to your App Store listing.
3. Android visitors are redirected to your Google Play listing.
4. Any other device (a computer, an unknown platform) goes to the fallback, your website.

This works because the code encodes a short link, not a store URL. The routing runs on our server, on every scan, so the printed image never changes.

### Why not link directly to one store URL?

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.

### 2. Make the QR code and route iPhone and Android

1. Go to **Links**, click **Add new link**, choose **Enter Website URL** and paste your website in **Destination URL**. That page becomes the fallback for computers and every other device.
2. Click **Next**, type a name in **Name of the link** (for example "App download, conference flyer") and click **Create**. The QR code already works and opens the link's workflow: **Link Visit** on the left, **Redirection** to your website on the right.
3. Click the **+** on the connector between them, choose **Device Condition**, then **Device Platform**.
4. The first platform option is already iOS. Click **Add Option**, pick **Android**, then **Create Platform Condition**. The scan now splits three ways: iOS, Android and **Other Platforms**, which still goes to your website.
5. Right-click the canvas, choose **Create workflow step**, then **Redirect**, paste your App Store URL and click **Create Redirect Step**. Drag the iOS branch onto it.
6. Do the same with your Google Play URL and drag the Android branch onto it.
7. Test it: open **Live Events**, scan the code with an iPhone and with an Android phone. Each lands on its store, and each scan appears live with the device, the country and where it was sent.

See [how to use device conditions](https://linkbreakers.com/help/article/how-to-use-device-conditions) for every other device option (device type, browser, brand, actor).

To build it from code instead, the [app download QR code example on GitHub](https://github.com/linkbreakers-com/examples/tree/main/app-download-qr-code-iphone-android-python?utm_source=help-center&utm_content=how-to-create-a-qr-code-for-an-app-download) creates the same link with the Python SDK, then saves the QR code.

### 3. Create one link per placement

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](https://linkbreakers.com/help/article/qr-code-scanability-best-practices-contrast-readability-optimization) 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](https://linkbreakers.com/help/article/what-is-a-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.

**iPads.** An iPad that asks for the mobile site is routed as iOS. When iPadOS asks for desktop sites (its default in Safari), it identifies as a Mac and goes to the fallback, so make the fallback page link to the App Store too. We checked both with the example above on 2026-11-01.

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

**Printed codes outlive a cancelled plan.** If a paid subscription ends, the workspace returns to the free plan and every printed code keeps redirecting ([what happens at a plan limit](https://linkbreakers.com/help/article/what-happens-when-you-reach-your-linkbreakers-plan-limits)). A code stops only if its link is deleted or expired, or its workspace is deleted. A [branded short domain](https://linkbreakers.com/help/article/how-to-create-branded-links-in-linkbreakers) (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](https://linkbreakers.com/help/article/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](https://linkbreakers.com/help/article/what-is-a-utm-builder-in-linkbreakers) 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](https://linkbreakers.com/help/article/qr-code-size-and-print-dimension-benchmarks) for detailed size-to-scan-reliability data.
