Compass / Store Launch
0%  0 of 0 done

App Launch Runbook

Ship Compass to both stores, fast.

The fastest realistic path to the Apple App Store and Google Play. Work top to bottom and tick items off - your progress saves automatically in this browser.

Identity: app.heycompass.mobile (both) Build: local (xcodebuild + gradlew) Apple: account + TestFlight ready

The trick: run the two stores in parallel

The single biggest time sink is Google Play's 14-day closed test (personal accounts only). It cannot be sped up, but it runs in the background while you do everything else.

Net effect: those 14 days cost almost no extra calendar time.

Critical 2026 gates WILL BLOCK YOU

🔧

App fixes before you build

0 / 0

Code + content changes, not store-console steps. These alter the binary and the answers you give on the listing / privacy forms, so finish them before the iOS archive (A3) and the Android bundle (B3). They block both stores - that is why this comes first.

C1Authentication (Sign in with Apple)0/1
C2User-generated-content safety0/5

Re-assessed: NOT APPLICABLE - the shipped app has no reachable user-to-user content (trip collaboration + group chat exist as code but are not navigable; imported reels stay private to the saver). Guideline 1.2 report / block / EULA / contact precautions do not apply. Deferred until collaboration ships.

C3Account & data deletion (web URL)0/1
C4iOS privacy manifest0/1
C5Permissions & tracking parity0/2

Apple App Store

0 / 0

Unify to Compass IDs + local build. Because the iOS bundle ID changes from app.drift.mobile to app.heycompass.mobile, you create a brand-new App Store Connect app record (Apple does not allow changing a published app's bundle ID). Your old Drift TestFlight app is not reused.

A1Pre-flight config (release build only)0/9

app.json now carries the permanent Compass identity - the old Drift-for-local-testing revert is retired. These edits are committable normally; nothing to revert after building.

Applied 2026-06-09: app.json is Compass + version 1.0.0 / build 1; native Sign in with Apple was added (expo-apple-authentication + a shared useAppleAuth hook, iOS-only). expo prebuild -p ios --clean + pod-install ran and the dev team was re-applied to all targets. The native project is build-ready (bundle ID, app group, team x4, CFBundleVersion 1, Apple-sign-in entitlement, Apple pod all verified). Remaining before archive: the Clerk production cutover (callout below).

Clerk production instance BEFORE ARCHIVE

Everything currently uses pk_test_ - the Clerk development instance. App Store builds must use a Clerk production instance (pk_live_). Set it up, then tick the Clerk step in A1.

  • In the Clerk dashboard, create a production instance (it clones your dev instance).
  • Add the production domain and the DNS records Clerk gives you (CNAMEs for clerk.heycompass.app and friends).
  • Re-create your Google SSO OAuth credentials for the production instance - you use Google sign-in and dev OAuth keys do not carry over.
  • Copy the production publishable key (pk_live_).
  • Put it in apps/mobile/.env.production as EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY (local xcodebuild reads this) and in the eas.json production profile.
  • Heads-up: users created on the dev instance do not migrate to production.
A2Apple Developer portal0/5
A3Build locally with Xcode 260/6
A4App Store Connect - new app record0/4
A5Listing assets0/6
A6Privacy + compliance (2026 gates)0/6
A7Submit for review0/6

Google Play Store

0 / 0

From scratch + local build. Android already uses app.heycompass.mobile, so no ID change.

Decision: how to handle the 14-day wait

Google requires 12 testers opted in for 14 continuous days on a closed track before production access - but only for personal accounts created after 2023-11-13.

  • Organization account (registered business + a D-U-N-S number, free but roughly 5-30 days to obtain): fully exempt from the 14-day rule. Choose "Organization" at signup. Best if you have or can quickly register a legal entity.
  • Personal account: the 14-day test is mandatory and cannot be skipped. Mitigation: start it on Day 0 so it overlaps everything else, and recruit testers fast.
B0Decision + tester line-up0/2
B1Account setup0/5
B2Prerequisites (your blocker)0/4
B3Build locally0/2
B4Create app + store listing0/8
B5Policy forms0/7
B6Testing track0/4
B7Production release0/3