Publishing your React Native app to the App Store and Google Play Store requires careful preparation, testing, and configuration. This guide covers the entire process for both platforms.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/facebook/react-native/llms.txt
Use this file to discover all available pages before exploring further.
Pre-Publishing Checklist
Before publishing, ensure:- App is tested on physical devices
- All features work correctly
- Performance is optimized
- Security best practices implemented
- App icons and splash screens created
- Privacy policy and terms of service ready
- App store descriptions prepared
- Screenshots and preview videos created
- Version number and build number set
iOS App Store
Prerequisites
- Apple Developer Account: $99/year
- Mac with Xcode: Latest version recommended
- Test devices: Physical iOS devices for testing
Step 1: App Store Connect Setup
- Go to App Store Connect
- Click “My Apps” → ”+” → “New App”
- Fill in app information:
- Platform: iOS
- App Name
- Primary Language
- Bundle ID
- SKU (unique identifier)
Step 2: Configure Xcode Project
Openios/YourApp.xcworkspace in Xcode:
Bundle Identifier
- Select project in navigator
- Select target under “Targets”
- In “General” tab, set Bundle Identifier
- Must match App Store Connect bundle ID
App Icons
Add app icons toios/YourApp/Images.xcassets/AppIcon.appiconset/:
- 1024×1024 (App Store)
- 180×180 (@3x iPhone)
- 120×120 (@2x iPhone)
- 87×87 (@3x iPhone Settings)
- 80×80 (@2x iPhone Spotlight)
- 58×58 (@2x iPhone Settings)
Launch Screen
Configure inios/YourApp/LaunchScreen.storyboard or use react-native-splash-screen.
Version and Build Number
Step 3: Code Signing
Automatic Signing (Recommended)
- In Xcode, select project
- Under “Signing & Capabilities”
- Check “Automatically manage signing”
- Select your team
Manual Signing
- Create App ID in Apple Developer Portal
- Create Distribution Certificate
- Create Provisioning Profile
- Download and install in Xcode
Step 4: Build for Release
Clean Build Folder
Archive the App
- In Xcode, select “Any iOS Device” as destination
- Product → Archive
- Wait for archive to complete
- Organizer window opens automatically
Step 5: Upload to App Store Connect
- In Organizer, select your archive
- Click “Distribute App”
- Select “App Store Connect”
- Choose “Upload”
- Select signing options
- Click “Upload”
Step 6: TestFlight (Optional but Recommended)
- In App Store Connect, go to “TestFlight” tab
- Add internal testers (up to 100)
- Add external testers (up to 10,000, requires App Review)
- Share TestFlight link with testers
Step 7: Submit for Review
- In App Store Connect, go to “App Store” tab
- Click ”+” next to “iOS App”
- Fill in all required information:
App Information
- Name
- Subtitle (30 characters)
- Privacy Policy URL
- Category (Primary and Secondary)
- Age Rating
Pricing and Availability
- Price tier
- Availability regions
- Pre-orders (optional)
Version Information
- What’s New (release notes)
- Promotional text
- Description
- Keywords (100 characters, comma-separated)
- Support URL
- Marketing URL (optional)
Screenshots
Required sizes:- 6.5” Display (iPhone 14 Pro Max): 1290×2796
- 5.5” Display (iPhone 8 Plus): 1242×2208
- iPad Pro (3rd gen): 2048×2732
App Review Information
- Contact information
- Demo account (if app requires login)
- Notes for reviewer
- Select build from TestFlight
- Answer export compliance questions
- Click “Submit for Review”
Google Play Store
Prerequisites
- Google Play Console Account: $25 one-time fee
- Android Studio: For building and signing
- Test devices: Physical Android devices
Step 1: Generate Signing Key
Create a keystore file:- Keystore password
- Key password
- Your name, organization, city, state, country
Step 2: Configure Gradle
Store Keystore Credentials
Createandroid/gradle.properties (add to .gitignore):
Configure Build
Editandroid/app/build.gradle:
Step 3: Build Release APK/AAB
Android App Bundle (Recommended)
android/app/build/outputs/bundle/release/app-release.aab
APK (Alternative)
android/app/build/outputs/apk/release/app-release.apk
Step 4: Google Play Console Setup
- Go to Google Play Console
- Click “Create app”
- Fill in:
- App name
- Default language
- App or game
- Free or paid
- Declarations (content policy, export laws)
Step 5: Complete Store Listing
App Details
- Short description (80 characters)
- Full description (4000 characters)
- App icon (512×512 PNG)
- Feature graphic (1024×500 JPG/PNG)
- Screenshots:
- Phone: At least 2 (16:9 or 9:16 ratio)
- 7” Tablet: Optional
- 10” Tablet: Optional
Categorization
- App category
- Content rating questionnaire
- Target audience
- News app (if applicable)
Contact Details
- Website (optional)
- Phone (optional)
- Privacy policy URL
Store Settings
- App name
- Default language
- External marketing
Step 6: Content Rating
- Go to “Content rating” section
- Fill out IARC questionnaire
- Receive ratings for various regions
Step 7: Set Up Release
Production Track
- Go to “Production” under “Release”
- Click “Create new release”
- Upload AAB file
- Fill in release notes
- Set rollout percentage (optional)
- Review and roll out
Internal Testing (Recommended)
- Set up internal testing track
- Add testers by email
- Upload build
- Share testing link
Closed/Open Testing
- Closed testing: Limited testers, private
- Open testing: Anyone with link can join
Step 8: App Review
- Complete all required sections in Play Console
- Click “Send for review”
- Wait for approval (typically 1-3 days)
Post-Launch
iOS
Monitor Reviews
Analytics
- App Store Connect provides:
- Downloads
- Revenue
- Crashes
- Performance metrics
Phased Release
Enable in App Store Connect:- Day 1: 1% of users
- Day 2: 2% of users
- Day 3: 5% of users
- Day 4: 10% of users
- Day 5: 20% of users
- Day 6: 50% of users
- Day 7: 100% of users
Android
Staged Rollout
Monitor Health
Google Play Console provides:- Crash reports
- ANRs (App Not Responding)
- User reviews
- Pre-launch reports
Updates and Maintenance
Version Numbering
Follow semantic versioning:iOS Updates
Android Updates
Common Rejection Reasons
iOS
Guideline 2.1 - Performance: App Completeness
Guideline 2.1 - Performance: App Completeness
Issue: App crashes or has broken features.Solution:
- Test thoroughly on physical devices
- Provide demo account if login required
- Ensure all features work
- Test on multiple iOS versions
Guideline 4.3 - Design: Spam
Guideline 4.3 - Design: Spam
Issue: App is too similar to existing apps.Solution:
- Make your app unique
- Avoid duplicate functionality
- Add distinguishing features
- Improve design and UX
Guideline 5.1.1 - Legal: Privacy
Guideline 5.1.1 - Legal: Privacy
Issue: Missing privacy policy or permissions descriptions.Solution:
- Add privacy policy URL
- Describe all permission uses in Info.plist
- Be transparent about data collection
Android
Violation of Content Policy
Violation of Content Policy
Issue: App contains prohibited content.Solution:
- Review content policy
- Remove prohibited content
- Update age rating if needed
- Moderate user-generated content
Security Vulnerability
Security Vulnerability
Issue: App has security issues.Solution:
- Update dependencies
- Fix SSL/TLS issues
- Implement proper authentication
- Secure API communications
Best Practices
- Test extensively: Use TestFlight and internal testing
- Prepare assets: High-quality icons and screenshots
- Write clear descriptions: Highlight key features
- Respond to reviews: Engage with users
- Monitor crashes: Fix issues quickly
- Use staged rollouts: Catch issues early
- Keep credentials safe: Store keystore securely
- Follow guidelines: Read app store policies
- Update regularly: Fix bugs and add features
- Track analytics: Understand user behavior
Next Steps
Security
Implement security best practices
Troubleshooting
Solve common publishing issues