Back to React Native tutorials
Advanced18 min read

Deployment

Ship React Native apps to App Store and Google Play with signing, versioning, and update strategies.

iOS Release

Configure bundle identifier, signing certificates, and provisioning profiles in Xcode. Archive release builds and upload via Transporter or fastlane deliver.

App Store Connect requires screenshots, privacy nutrition labels, and review notes. TestFlight distributes beta builds.

Enable bitcode settings per current Apple guidance and use automatic signing for teams when possible.

  • Increment CFBundleShortVersionString and CFBundleVersion
  • Run release on device before submission
  • Handle App Tracking Transparency if using IDFA

Android Release

Generate upload keystore and configure signing in android/app/build.gradle. Build AAB with ./gradlew bundleRelease for Play Console.

Play App Signing stores keys Google-side. Configure versionCode monotonically increasing each upload.

Test on multiple API levels and screen densities; Play pre-launch reports catch crashes.

  • Enable ProGuard/R8 rules for native modules you use
  • Store keystore backups securely—loss blocks updates
  • Use internal testing track before production rollout
cd android && ./gradlew bundleRelease

OTA Updates

Expo Updates and CodePush deliver JavaScript bundle updates without store review for bug fixes avoiding native changes.

OTA cannot replace native code changes—plan store releases when upgrading RN or adding native modules.

Implement version compatibility checks so old binaries do not load incompatible JS bundles.

  • Roll out OTA gradually with staged deployments
  • Monitor crash rates after OTA pushes
  • Document rollback procedure to previous bundle

Get In Touch


Ready to discuss your next project? Drop me a message.