Skip to main content
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.

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

  1. Apple Developer Account: $99/year
  2. Mac with Xcode: Latest version recommended
  3. Test devices: Physical iOS devices for testing

Step 1: App Store Connect Setup

  1. Go to App Store Connect
  2. Click “My Apps” → ”+” → “New App”
  3. Fill in app information:
    • Platform: iOS
    • App Name
    • Primary Language
    • Bundle ID
    • SKU (unique identifier)

Step 2: Configure Xcode Project

Open ios/YourApp.xcworkspace in Xcode:

Bundle Identifier

  1. Select project in navigator
  2. Select target under “Targets”
  3. In “General” tab, set Bundle Identifier
  4. Must match App Store Connect bundle ID

App Icons

Add app icons to ios/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 in ios/YourApp/LaunchScreen.storyboard or use react-native-splash-screen.

Version and Build Number

Step 3: Code Signing

  1. In Xcode, select project
  2. Under “Signing & Capabilities”
  3. Check “Automatically manage signing”
  4. Select your team

Manual Signing

  1. Create App ID in Apple Developer Portal
  2. Create Distribution Certificate
  3. Create Provisioning Profile
  4. Download and install in Xcode

Step 4: Build for Release

Clean Build Folder

Archive the App

  1. In Xcode, select “Any iOS Device” as destination
  2. Product → Archive
  3. Wait for archive to complete
  4. Organizer window opens automatically

Step 5: Upload to App Store Connect

  1. In Organizer, select your archive
  2. Click “Distribute App”
  3. Select “App Store Connect”
  4. Choose “Upload”
  5. Select signing options
  6. Click “Upload”
Wait for processing (usually 10-30 minutes).
  1. In App Store Connect, go to “TestFlight” tab
  2. Add internal testers (up to 100)
  3. Add external testers (up to 10,000, requires App Review)
  4. Share TestFlight link with testers

Step 7: Submit for Review

  1. In App Store Connect, go to “App Store” tab
  2. Click ”+” next to “iOS App”
  3. 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
Optional:
  • iPad Pro (3rd gen): 2048×2732

App Review Information

  • Contact information
  • Demo account (if app requires login)
  • Notes for reviewer
  1. Select build from TestFlight
  2. Answer export compliance questions
  3. Click “Submit for Review”
Review times typically range from 24-48 hours. Rejections are common - address feedback and resubmit.

Google Play Store

Prerequisites

  1. Google Play Console Account: $25 one-time fee
  2. Android Studio: For building and signing
  3. Test devices: Physical Android devices

Step 1: Generate Signing Key

Create a keystore file:
You’ll be asked for:
  • Keystore password
  • Key password
  • Your name, organization, city, state, country
Keep the keystore file safe! If you lose it, you cannot update your app.

Step 2: Configure Gradle

Store Keystore Credentials

Create android/gradle.properties (add to .gitignore):

Configure Build

Edit android/app/build.gradle:

Step 3: Build Release APK/AAB

Output: android/app/build/outputs/bundle/release/app-release.aab

APK (Alternative)

Output: android/app/build/outputs/apk/release/app-release.apk
Google Play requires App Bundles (AAB) for new apps since August 2021. APKs are mainly for direct distribution.

Step 4: Google Play Console Setup

  1. Go to Google Play Console
  2. Click “Create app”
  3. 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

  • Email
  • Website (optional)
  • Phone (optional)
  • Privacy policy URL

Store Settings

  • App name
  • Default language
  • External marketing

Step 6: Content Rating

  1. Go to “Content rating” section
  2. Fill out IARC questionnaire
  3. Receive ratings for various regions

Step 7: Set Up Release

Production Track

  1. Go to “Production” under “Release”
  2. Click “Create new release”
  3. Upload AAB file
  4. Fill in release notes
  5. Set rollout percentage (optional)
  6. Review and roll out
  1. Set up internal testing track
  2. Add testers by email
  3. Upload build
  4. Share testing link

Closed/Open Testing

  • Closed testing: Limited testers, private
  • Open testing: Anyone with link can join

Step 8: App Review

  1. Complete all required sections in Play Console
  2. Click “Send for review”
  3. Wait for approval (typically 1-3 days)
First app review can take longer. Ensure all policies are followed to avoid rejection.

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

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
Issue: App is too similar to existing apps.Solution:
  • Make your app unique
  • Avoid duplicate functionality
  • Add distinguishing features
  • Improve design and UX

Android

Issue: App contains prohibited content.Solution:
  • Review content policy
  • Remove prohibited content
  • Update age rating if needed
  • Moderate user-generated content
Issue: App has security issues.Solution:
  • Update dependencies
  • Fix SSL/TLS issues
  • Implement proper authentication
  • Secure API communications

Best Practices

  1. Test extensively: Use TestFlight and internal testing
  2. Prepare assets: High-quality icons and screenshots
  3. Write clear descriptions: Highlight key features
  4. Respond to reviews: Engage with users
  5. Monitor crashes: Fix issues quickly
  6. Use staged rollouts: Catch issues early
  7. Keep credentials safe: Store keystore securely
  8. Follow guidelines: Read app store policies
  9. Update regularly: Fix bugs and add features
  10. Track analytics: Understand user behavior

Next Steps

Security

Implement security best practices

Troubleshooting

Solve common publishing issues