Quick answer
A QR code that opens a specific app is just a QR code encoding a normal HTTPS URL — one set up as a Universal Link on iOS or an App Link on Android. There's no special "deep link QR" format. Older custom URL schemes (like myapp://) can also open an app directly, but they aren't verified against a real domain and don't fall back gracefully if the app isn't installed. Universal Links and App Links fix both problems by tying the link to a website you actually own — so the OS trusts it enough to skip past the browser.
Step-by-step
Universal Links on iOS
iOS needs proof that your app and your website belong to the same team before it hands a link straight to your app instead of Safari. That proof is a file named apple-app-site-association, hosted at https://yourdomain.com/.well-known/apple-app-site-association. It lists your app's Team ID and Bundle ID alongside the URL paths you want handled. Once that file is live and your app matches it, tapping a link to that domain — including one scanned from a QR code — opens your app directly. No app installed? iOS just falls back to Safari.
App Links on Android
Android's version is assetlinks.json, hosted at https://yourdomain.com/.well-known/assetlinks.json. It cryptographically verifies your domain against your app's signing certificate through the Digital Asset Links protocol. A verified App Link opens straight into the app, no prompt. An unverified deep link, on the other hand, can trigger Android's "open with" chooser, or fall back to the browser.
The QR code itself
Once those two association files are live, the QR code part is an afterthought: encode the plain HTTPS URL in any QR generator. No specialized "deep link" service required — a Universal Link or App Link is just a URL, so any standard QR code generator can create one.
Common problems and fixes
The QR code opens the browser instead of the app. Check that the association file is reachable at the exact .well-known/ path and correctly formatted — a typo there is the most common cause. Otherwise, the app simply isn't installed on that device, which is the intended fallback, not a bug.
A third-party QR or link-shortening service is in the way. Some services wrap your destination URL in their own redirect for tracking, which breaks the direct handoff. Point the QR code straight at your real HTTPS URL instead. The same logic applies to other action-specific codes, like a payment QR code for Apple Wallet, Venmo, or PayPal.
It "isn't working" when tested by typing the link into a browser. That's expected. Typing a Universal Link or App Link into a mobile browser's address bar doesn't trigger the app-open behavior — only a tapped link (a QR scan, a text message, a notes app) invokes the handoff. If the code won't scan cleanly at all, run through the QR code won't scan checklist first.
Doing this on QRDock specifically
Once your Universal Link or App Link is live and verified, paste the destination URL into QRDock the same way you would for any other link-based QR code. QRDock checks the destination before opening it and doesn't track or log scans. It's the same generator you'd reach for to build a QR code that pre-fills a text or email or a vCard QR code — any code that needs to land on a specific action rather than a generic homepage. Before you print or publish, scan the finished code with your own phone's camera app to confirm it lands in the app, not just the website.
Frequently Asked Questions
What's the difference between a deep link and a Universal Link?
A deep link is any URI that points to a specific spot inside an app; a custom-scheme deep link (like myapp://) works but isn't verified and has no clean fallback. A Universal Link or App Link is a deep link built on a verified HTTPS URL, so it opens the app directly with no chooser dialog and falls back gracefully if the app isn't installed.
Do I need a special QR code generator to make a deep-link QR code?
No. A Universal Link or App Link is just a normal HTTPS URL, so any QR code generator — including QRDock — can encode it. The setup work happens on the app and website side, not in the QR code itself.
Why did my QR code open the browser instead of my app?
The most common causes are a missing or misconfigured association file, an app that isn't installed yet (expected fallback), or a third-party service that inserted its own redirect in front of your real URL.
Can I test a deep-link QR code without printing it?
Yes — scan it with your phone's camera app the same way a reader would. Typing the same URL into a browser address bar won't trigger the app; only a tapped link invokes the handoff.
Conclusion
A QR code that opens a specific app isn't a special trick. It's an ordinary QR code pointing at a Universal Link or App Link, and the verification files on your domain are what let the OS hand it straight to your app instead of the browser. Set up apple-app-site-association and assetlinks.json, encode the plain URL, and test it the way a reader actually will: with a camera, not a browser address bar.