Publish a React Native App to the iOS App Store
This guide covers the iOS-specific release steps after your Instamobile React Native app runs locally and passes the general release checklist.
Quick Answer
Use your own bundle identifier, signing team, Firebase iOS config, privacy policy, icons, launch assets, and production backend. Open the iOS workspace in Xcode, archive a release build, upload it to App Store Connect, complete app metadata and privacy forms, then submit for review.
Prerequisites
Before starting the iOS release:
- the app runs locally on iOS;
- the app has your branding;
- the iOS bundle identifier belongs to your Apple Developer account;
- Firebase iOS config is replaced with your
GoogleService-Info.plist; - push, payments, maps, or other native services are configured if used;
- the general release checklist is complete.
Start here:
1. Configure iOS App Identity
Open the iOS workspace:
open ios/Instamobile.xcworkspace
In Xcode, check:
- display name;
- bundle identifier;
- signing team;
- version;
- build number;
- app icon;
- launch screen;
- capabilities;
- entitlements.
Some app packages may keep historical project or workspace names internally. That is acceptable as long as the app identity, bundle identifier, signing, and store metadata are yours.
2. Configure Firebase and Native Services
For Firebase-backed apps, confirm that the iOS target includes your
GoogleService-Info.plist.
Also verify any services used by the app:
- Apple Sign In;
- push notifications and APNs;
- maps or location permissions;
- camera and photo permissions;
- Apple Pay;
- deep links;
- associated domains;
- App Check, when ready for production enforcement.
After changing native files, reinstall pods if needed:
bundle exec pod install --project-directory=ios
3. Prepare App Store Connect
- create a new app;
- choose the bundle identifier;
- set app name, SKU, and primary language;
- add pricing and availability;
- add privacy policy URL;
- complete App Privacy details;
- add screenshots and metadata;
- add review notes and a test account if login is required.
Use screenshots from your customized release build, not demo images.
4. Archive the App
In Xcode:
- select a generic iOS device or a connected device;
- choose the release scheme;
- open Product > Archive;
- wait for the archive to finish;
- open Organizer;
- validate the archive;
- distribute to App Store Connect.
If the archive fails, inspect the full Xcode error. Signing, missing entitlements, stale pods, or missing config files are common causes.
5. Test Before Submitting
Use TestFlight or an internal build before App Review.
Check:
- first launch;
- sign-up and sign-in;
- main feature flow;
- Firebase reads and writes;
- media upload if used;
- push notification token registration if used;
- payments if used;
- account deletion or support flow if required;
- privacy links;
- crash-free startup.
6. Submit for Review
In App Store Connect:
- select the uploaded build;
- complete export compliance;
- complete content rights and age rating;
- add review notes;
- add test credentials if needed;
- submit the version for review.
Review notes should explain any login requirements, demo accounts, paid content, permissions, or backend setup that Apple needs to test the app.
Common iOS Release Issues
Bundle identifier is already used
Choose a unique bundle identifier that belongs to your Apple Developer account,
then update Firebase iOS app config and download a new
GoogleService-Info.plist.
Archive fails because of signing
Check signing team, provisioning profiles, bundle identifier, and enabled capabilities in Xcode.
Push notifications do not work in TestFlight
Check APNs key/certificate in Firebase, notification entitlement in Xcode, device token registration, and backend send logic.
Apple rejects missing privacy details
Complete App Privacy accurately for all data collected by your app and SDKs. Match the privacy policy to the app behavior.