I've Shipped 5 iOS Apps. Here's the Exact Checklist I Use Every Time (Steal It)

The first app I shipped took months longer than it should have. So I wrote it all down. This is the checklist I now run for every single app, empty repo to App Store, nothing skipped. It's built for coders shipping iOS apps.
Save this. It'll save you weeks.
The full checklist
- Technical setup
- Set up project with your Coding Agent (Cursor, Claude, Codex)
- Create GitHub repo
- Set up Expo Go build
- Install dependencies
- OTA updates (push JS fixes without a full rebuild)
- Integrate Sentry + Mixpanel
- Integrate Appsflyer
- apple-appstore-reviewer (Git repo)
- Navigation & foundation
- Integrate native Liquid Glass nav bar
- Prepare language localization
- Responsive layout (SafeArea + padding)
- App Store Connect prep
- Create Bundle Identifier
- Create the app in App Store Connect
Only use a DB if you actually need one - you only need one if you're building something social/networked; everything else can live locally on the device)
- Storage / database
- Create a Supabase project OR save locally
- Connect to code (URL + API keys)
- Enable RLS (Row Level Security)
- Model your tables
- Auth / Apple Sign In / Google Sign In — paywall first, then sign up
- Define onboarding flow
- Edge function (delete user)
- Onboarding
- Launch screen
- TikTok Ads SDK with ATT — ATT prompt FIRST, then initialize the SDK
- Onboarding steps
- Notifications
- Rating modal
- Paywall (RevenueCat / Superwall)
- Sign up / Sign in ("save your progress" framing)
- Secure password fields: textContentType, autoComplete="off", clear fields + delay before navigation
- Mixpanel integration
- Purchases with RevenueCat
- Create in-app products in App Store Connect
- Create project in RevenueCat, add the app
- Create entitlement
- Import / create products and link them to the entitlement
- Create offerings (e.g. default)
- Set up packages inside them (monthly / yearly / lifetime)
- Initialize the SDK, fetch offerings
- Implement the purchase flow
- Add Restore Purchases
- Store user entitlement in Supabase
- Submit an (unfinished) build for review
- Set up a subscription guard (protected screens)
- Build a cancel flow (with a special offer)
- App Store Connect listing
- App name, subtitle, keywords
- Screenshots (iPhone / iPad)
- Description (SEO + benefit-focused), promo text
- Upload privacy policy
- Support URL
- Localizations
- Review notes
- Additional assets
- Localizations: translate all text (CFBundleLocalizations must be in the final Info.plist)
- App icon
- App Store Connect sub-pages (privacy / age rating / etc.)
- Widgets
- Build & testing
- Create the build
- Test sign in / sign out
- Test purchases
- Test on different devices (especially iPad and Pro models)
- Create / test notifications
That's the whole thing
Every app I ship runs through this exact list. The boring parts are where launches actually go wrong — so the checklist is the difference between shipping in a weekend and debugging for three weeks.
I'm building in public — 5 apps, real numbers, every fail and win as it happens. If this saved you time, follow along. 🚐
Related articles

34 Truths Nobody Tells You About Scaling a Consumer App
I ran marketing and day-to-day operations for Cal AI as we scaled from nothing to $50M ARR in roughly 18 months.

How to turn attention into consumer-app customers who don’t churn
That playbook worked when building the product was hard and distribution was cheap, but the opposite is true in 2026.

I studied 30,600 apps making $20k-100k/mo+, the method is stupidly easy
only 1.7% of apps in the iOS App Store make $20k/mo+ that's over 30,000 apps (i researched all manually, no ai)