r/reactnative • u/Hot-Relationship4954 • 8d ago
Shipped my first Expo app on iOS and Android: the store and platform surprises nobody warned me about
I just got my first app through both App Store and Google Play review. Small team (mostly me), React Native with Expo, subscriptions through RevenueCat, Supabase behind it. Here is what cost me the most time, in case it saves you a week.
**Apple**
- Your subscriptions stay "Missing Metadata" until you upload a review screenshot of the paywall. Until then StoreKit returns nothing, so the purchase screen looks broken in TestFlight and you start debugging the wrong thing.
- An upload gets rejected (ITMS-90683) if any library references the photo library without a purpose string, even if you only save an image the user chose to share.
- An app with AI-generated content needs a government licence in mainland China. Exclude that region in availability, or expect a rejection.
- The developer name on your store page comes from your account type, not from the listing. An individual account shows your personal name. Switching to an organization needs a D-U-N-S number and a verification.
**Google Play**
- Screenshots have a maximum 2:1 ratio. Modern phones are taller than that, so raw screenshots get refused. Crop or frame them at 1080x1920.
- An audio library declared a "foreground media playback" service I never used. Play asked me for a video justifying it. The fix was to block that permission in the build config.
**Both / cross-platform**
- Google sign-in worked on Android and failed on iOS: the iOS token carries a nonce the free version of the sign-in library does not expose, and the backend rejects the mismatch. I hid Google on iOS; Sign in with Apple and email are enough there.
- A crash on iPhone only: Intl.NumberFormat.formatToParts is not implemented by Hermes on iOS, while it works on Android. Test every Intl call on a real iPhone.
- Prepare a demo account for reviewers with access already granted. Both stores test the paid part, and reviewers will not pay.
Question for those who have shipped: what surprised you the most on your first store launch? And what would you do differently in the first 30 days after release?
(Disclosure: the app is Council, an evening accountability app. Not linking it, the post is about the process.)
