Treat launch as a set of verified gates. Before you announce the app, use one copyable control sheet with an owner, status, evidence, and follow-up for every gate.
01 Use a proof-based launch gate
Every item needs an owner, a status, retained evidence, and a follow-up. “Done” without evidence is not a launch gate.
Keep the sheet small by including only conditions that can change the launch decision or require a named check afterward. Keep audience and channel choices in the app marketing plan, and keep the detailed device matrix in the routing QA document. This checklist coordinates whether the release is ready to proceed.
Write one verifiable result per row. If iOS and Android have different owners or evidence, split them into separate rows. Leave the status open or blocked until a teammate can inspect the retained evidence, then use the follow-up field to record the next action instead of expanding the checklist with loose ideas.
02 Clear the store and release gates
Select the exact release build, finish the live listing and required declarations, clear current console errors, choose release control, and retain the approved or release-ready status. Automated checks reduce risk, but they aren’t exhaustive.
| Platform | Gate | Evidence to retain |
|---|---|---|
| Apple App Store | Select the intended build, complete required version metadata, and follow Apple’s current submission workflow. | Version and build identifiers plus the current submission status. |
| Apple App Store | Confirm that the listing, support and privacy destinations, screenshots, pricing, and availability describe this release. Check the current screenshot and preview conditions. | Final listing URLs or screenshots and selected availability. |
| Apple App Store | Resolve submission issues and choose the release behavior that fits the launch. Review Apple’s publishing overview and App Store Connect workflow. | Release setting and a current status record tied to the intended build. |
| Google Play | Complete every mandatory setup task shown in the app dashboard. The console remains the source of truth for account- and app-specific requirements; use the current app-dashboard guide. | Current dashboard status and any unresolved required task. |
| Google Play | Put the intended app bundle in the correct track, confirm release details, clear blocking issues, and verify the selected countries or regions using Google Play’s release instructions. | App version, bundle, track, rollout setting, availability, and current release status. |
| Google Play | Review the pre-launch report for relevant stability, compatibility, performance, and accessibility findings. Keep manual QA in the plan because the automated report is not exhaustive. See how to run the report and interpret its limits. | Report link or screenshot plus the disposition of each release-relevant finding. |
Store requirements vary with the account, app category, monetization, content, and target regions, so clear every task displayed in the current console instead of treating this table as a complete field list. Review timing also varies: use the status shown by Apple or Google, keep the gate open or blocked until the named evidence exists, and choose your own review point and contingency for anything still pending.
03 Prove the release build and support path
Test the release candidate’s core action, account or payment path when applicable, failure and recovery behavior, support and privacy destinations, and the supported devices your listing promises. Record the build and version you tested, along with evidence for each result.
- Install the exact release candidate. Use the build selected for submission or production release, then record its build number, version, test date, device and operating-system version. If you replace that build, reopen the gate and repeat the affected checks. A passing result from an older build isn’t evidence for the release candidate.
- Complete the app’s core action on real supported devices. Start from a fresh install and follow the main path a new user needs to complete. For a camera app, that might mean granting permission, capturing an image and saving or exporting it. For an account-based app, include account creation or sign-in only if the app requires it. Test across the device and operating-system range you claim to support, giving priority to the combinations your listing and support policy promise.
- Check optional account and payment paths. If the app supports sign-in, test valid credentials, invalid credentials, sign-out and the recovery method you provide. If it sells subscriptions or other purchases, use the platform’s appropriate test environment to verify the purchase screen, successful access, cancellation or dismissal, and restoration when your product supports it. Skip these checks when the app has no account or paid path; don’t add a generic payment task just to make the checklist look complete.
- Force likely failures and prove recovery. Deny a permission, interrupt the network, submit invalid input and retry an interrupted action where those conditions apply. Confirm that the app explains what happened, preserves data when it should and gives the user a workable next step. Save a screenshot, screen recording or issue record for the result. A crash-free happy path doesn’t prove that a user can recover when a dependency fails.
- Open every support and privacy destination from the shipped app and listing. Check the support link, contact method, privacy policy and any account-deletion or help path your app actually presents. Confirm that each destination loads, matches the current product and can be used without access that a stranded user may not have. Treat broken, placeholder or outdated destinations as launch blockers when the app or store listing promises them.
- Review automated findings, then make a manual go or no-go decision. Google Play pre-launch reports can surface stability, Android compatibility, performance and accessibility issues, but automated tests can’t guarantee that they will find every problem. Triage each relevant finding and retain the report or resolution note, while keeping manual QA as the evidence for your release gate.
Attach each result to the exact release candidate and promised device coverage. If a feature, device class or payment path doesn’t apply, record that condition instead of an unqualified pass.
04 Freeze and record the final campaign route
Freeze one canonical campaign URL after the App Store and Google Play URLs are final. Add a useful website fallback and record any custom rule that intentionally changes the route.
Use the same base smart link across launch placements, then add consistent campaign tags for each profile, post, ad, email or partner placement. This keeps the destination configuration stable while the placement labels remain explicit. With AppRoute smart routing, one public URL can send iPhone visitors to the App Store, Android visitors to Google Play and other visitors to the website fallback. Active custom rules can change that result, so include their conditions and order in the launch record.
Copy this compact destination record into your launch-control sheet:
| Route component | Final value to record |
|---|---|
| Canonical campaign URL | The single public URL approved for launch placements |
| App Store destination | The final product-page URL for iPhone visitors |
| Google Play destination | The final product-page URL for Android visitors |
| Website fallback | A live page that gives other visitors a useful next step |
| Custom rules | Each condition, its destination and its priority order, or “none” |
Treat a rule as part of the release configuration. An active custom rule may intentionally override the basic store routing; an old rule may do so accidentally. Have the link owner compare the saved record with the current configuration before marking this gate ready, then retain a screenshot or saved configuration record that identifies the exact canonical URL and destinations.
05 Test the link and QR from real placements
Test the final URL from the placement people will actually use. Record the expected destination beside the observed result, and label each test request so you can separate it from launch traffic later.
- Give the final URL a consistent campaign label. Start with one canonical smart link, then add a small, readable UTM convention:
utm_sourcefor the platform or publisher,utm_mediumfor the placement type, andutm_campaignfor the launch campaign. Add a clearly marked test value, such asutm_content=prelaunch-test, while you run checks. The UTM cheat sheet has the naming pattern and examples; the important part here is that everyone testing the placement uses the same approved URL and that test requests remain easy to recognize. - Open the link from the placement people will use. Put the final URL into the actual profile field, scheduled post, ad preview, email button, or other approved placement. Tap that rendered link instead of pasting it into a browser. This catches placement-specific problems such as a truncated URL, an outdated draft, or a social app opening its own in-app browser. Record the placement name and the exact URL you tested.
- Check each relevant destination and browser context. At minimum, test from an iPhone, an Android device, and a desktop browser, plus the social or in-app browser used by the campaign. Before each test, write down the expected result: App Store, Google Play, or the website fallback. Then record the destination that actually opened, the device and browser context, the time, and a screenshot or other evidence. If you use custom routing rules, include the contexts those rules are meant to handle. The routing recipes contain the fuller expected-versus-observed matrix; keep this launch gate focused on the routes that the approved campaign will exercise.
- Scan the QR in its finished form. An AppRoute QR code encodes the smart link, so it should enter the same routing flow as a tap. Test the QR at its final printed or displayed size, with the intended contrast and viewing distance, on the devices your placement needs to support. Confirm both scan reliability and the resulting destination. If you later edit the smart link's destination, the short URL in the QR stays the same while the link and domain remain active, but you still need to scan it again. See AppRoute QR codes for how the QR and smart link work together.
- Compare the record and resolve every mismatch. Put the expected destination beside the observed destination and assign any correction. After a change to the URL, routing rule, destination, placement, or QR presentation, repeat the affected check and retain the new evidence.
06 Record the baseline before traffic arrives
Capture the comparison window and baseline in the system that owns each signal. Link requests, installs or opens, support issues, and revenue are different evidence layers. Write down the starting value, where you found it, and who will check it after launch.
| Signal | What to record before launch | System and owner | How to interpret it |
|---|---|---|---|
| Link requests | The comparison window, current request count, campaign label, and any available device or source context | AppRoute click analytics; link owner | Request context can be incomplete. Preview bots, repeat requests, missing source data, and the selected window can affect the count. |
| Installs or app opens | The native baseline and the exact report or event you plan to revisit | App Store, Google Play, or your app-side analytics; release or product owner | These systems own the later outcome. Don't infer an install or open from an AppRoute request or successful route. |
| Support issues | Open issue count or a short list of known launch-related problems, including severity and contact path | Your support inbox, issue tracker, or crash-reporting system; support owner | Compare like with like after launch, and keep known pre-launch issues separate from new reports. |
| Revenue, if you track it | The baseline window, currency, and aggregate total you will compare later | Stripe, RevenueCat, or your finance system; revenue owner | Keep this external baseline separate from link requests and use the same scope when you compare it later. |
Use the same window definition when you return to the table, and note any filter or tracking change that breaks the comparison. If a number has no named source or owner, it isn't ready to serve as a launch baseline.
07 Run the launch-day control sheet
Reconfirm live availability and the complete route, start distribution only after critical gates pass, assign one observer, and log issues and decisions in the same sheet. An approved build, a working redirect, and a quiet dashboard cover different parts of the launch path.
Copy this table into the document your team will keep open during launch. Its blank fields are a reusable procedure, not a customer result.
| Launch control | Check to perform | Owner | Status | Evidence | Follow-up or decision |
|---|---|---|---|---|---|
| App Store availability | Confirm the intended countries or regions in App Store Connect, then open the public listing in the storefronts your team can verify. Confirm that the intended version is available and that its listing matches the release. | ||||
| Google Play availability | Confirm the intended countries or regions in Play Console, then open the public listing in the markets your team can verify. Confirm that the production release and listing match the intended version. | ||||
| Fresh install and core action | Install the live release on the supported devices chosen for launch QA. Complete the app's core action, plus sign-in or purchase when those flows apply. | ||||
| Failure and support paths | Trigger the relevant failure or recovery state, then confirm that support and contact destinations work. | ||||
| Public campaign URL | Open the exact URL placed in launch posts, profiles, email, or ads. Confirm that it is the final link and that its campaign labels are intact. | ||||
| iPhone route | Open the final placement on an iPhone and record the destination reached. | ||||
| Android route | Open the final placement on an Android device and record the destination reached. | ||||
| Desktop fallback | Open the same link on desktop and confirm that the website fallback is useful and current. | ||||
| Social or in-app browser | Open the campaign from each actual in-app placement used today and record any difference from the expected route. | ||||
| QR code, if used | Scan the final printed or displayed QR at its real size and distance. Confirm that it opens the same active smart link and intended destination. | ||||
| Observation baseline | Confirm the comparison window, filters, source, and owner for link requests, native store or app outcomes, and support signals. Add aggregate revenue only if the team tracks it separately. | ||||
| Launch observer | Name one person to watch route behavior, available click context, store and app signals, support reports, and this issue log while distribution begins. | ||||
| Escalation and rollback | Record who can pause distribution, change a destination, stop a rollout, or coordinate a release response, and state how to reach that person. |
Use go only when the intended live releases are available, the core path passes, every active campaign placement reaches its expected destination, the baseline is recorded, and an observer plus escalation contact are present. Use no-go when a critical check fails or lacks an owner and evidence. Pause distribution, record the failure and decision, assign the follow-up, and rerun the affected check before changing the status.
08 Make the first review a correction pass
At a preselected review point, compare current evidence with the baseline, separate routing failures from listing, product, and support issues, fix the highest-impact confirmed problem, and schedule the next check. There is no universal review interval or success threshold; choose a point that fits your launch and use the current evidence in your control sheet.
Use four questions to keep the review bounded:
- What changed from the baseline? Compare the same measures and note the window you used. In AppRoute click analytics, inspect available campaign, device, and source context while accounting for missing context, preview bots, and repeat requests.
- Where does the evidence break? If requests never reach the intended destination, inspect the link and routing setup. If routing works but later outcomes or support signals are weak, inspect the store listing, app, checkout, and support systems that measure those stages.
- What is the highest-impact confirmed problem? Pick one issue supported by evidence, assign an owner, and record the correction. Don't turn an unexplained difference between systems into a diagnosis.
- What happens next? Add the follow-up evidence you expect, set the next review point, and keep unresolved discrepancies in the control sheet.