Before you start: the three prerequisites
1Create the app record in App Store Connect
App Store Connect is Apple’s publishing dashboard. Create a new app: name (unique on the store — check early, squatting is rampant), bundle ID (e.g. com.yourname.appname — must match your project config), primary language, SKU.
2Build a distributable binary
The Xcode path (traditional): open the project, configure signing with your distribution certificate and provisioning profile, Product → Archive, upload via Organizer. Requires a Mac.
The EAS path (Expo / React Native / AI-built apps): if your app is an Expo project — which is what modern AI builders like ShipNative export (see how to build an app with AI) — the build happens in Expo’s cloud:
npx eas build --platform ios npx eas submit --platform ios
EAS handles certificates and provisioning for you (answer its prompts; letting it manage credentials is the right default), builds on Expo’s Macs, and pushes the binary straight to App Store Connect. Total local requirements: Node and a terminal. No Mac, no Xcode. This is the single least-known fact in app publishing and it removes the biggest perceived barrier.
3TestFlight first
When the build lands in App Store Connect, put it on TestFlight (Apple’s beta channel) and install it on your own phone before submitting. Internal testing needs no review; you’ll catch the embarrassing bug now instead of in rejection feedback. Even 48 hours with five friends changes what you ship — here’s the full TestFlight workflow for AI-generated apps.
4Complete the store listing
5Submit for review
Select the build, answer compliance questions (export/encryption: “standard encryption” for typical HTTPS apps), add reviewer notes — include a demo login if your app has auth; missing test credentials is a top-3 rejection cause — and click Add for Review.
Review takes 24–72 hours typically. First submissions get more scrutiny.
6Handle the verdict
Approved → release (immediate, scheduled, or phased). Rejected → don’t panic: rejections are itemized and appealable, and most are fixable in an hour. The common ones for AI-built and Expo apps:
✗ 4.2 minimum functionality
The app is a thin webview or feels like a website. This is why output format matters: real React Native apps rarely trip this; wrapped web apps constantly do.
✗ 2.1 crashes/bugs
Usually crashes on iPad or on the reviewer’s network conditions. Test airplane mode.
✗ 5.1.1 missing privacy disclosures
Labels don’t match observed data flows.
✗ 3.1.1 payment rules
Digital goods sold outside Apple’s IAP.
Fix, resubmit, typically re-reviewed faster. Full pre-flight list: the 12-step submission checklist.
App not built yet? That part’s now the fast step: generate a store-ready React Native app free at shipnative.dev, then come back to this guide with a finished binary.