React Native to App Store
EAS Build, TestFlight, provisioning profiles, and all the landmines between your code and the App Store. A survival guide from someone who's been there.
Nobody Warns You About This
The React Native docs end where the pain begins. Getting from npx expo start to "Available on the App Store" involves Apple certificates, provisioning profiles, EAS configuration, TestFlight, and at least one afternoon of pure confusion.
This is the guide I wish existed when I shipped my first app.
EAS Build Setup
Expo Application Services (EAS) is the least painful way to build RN apps in CI. Install the CLI, run eas build:configure, and commit the generated eas.json. That's the easy part.
Build Profiles That Make Sense
Three profiles: development (local dev with dev client), preview (internal distribution via TestFlight), production (App Store). Don't conflate them or you'll submit a debug build one day and spend three hours wondering why.
Certificates and Provisioning: The Circle of Pain
Apple uses two things to verify builds: a signing certificate (who built it) and a provisioning profile (what devices can run it). EAS can manage both automatically. Let it. Do not try to manage them manually unless you enjoy suffering.
TestFlight and Internal Testing
Internal testers (your Apple Developer team members) get builds instantly. External testers need Apple review — 24-72 hours. Set up internal testing from day one so you can iterate fast.
Surviving App Review
Read the App Store Review Guidelines before you write a single line of code. The top rejection reasons: missing privacy policy, insufficient demo account, broken functionality on review device. Fix these before submission.
Tips That Saved My Submission
Include a demo account with pre-filled data. Record a screen capture of every non-obvious flow. Write the review notes like you're explaining your app to someone who's never heard of it — because you are.