10. React Native Deployment and Publishing | APK, App Store & OTA

10. React Native Deployment and Publishing | APK, App Store & OTA

AI Reading

Quick summary of this article

This module covers how to prepare and publish React Native apps for both Android and iOS, including creating signed builds, submitting to app stores, and using Expo for over-the-air updates.

  • To build an Android release APK, run ./gradlew assembleRelease from the android folder; the output file is located at android/app/build/outputs/apk/release/app-release.apk.
  • Android apps must be signed with a generated keystore, and the signing configuration (store file, passwords, and key alias) must be added to android/app/build.gradle.
  • Publishing to Google Play requires a developer account, uploading a signed APK or AAB, and submitting app details, screenshots, and a privacy policy for review.
  • For iOS, use Xcode to archive the app (selecting Generic iOS Device), then upload it via Xcode or the Transporter app, and complete the metadata in App Store Connect before submission.
  • Expo's OTA updates let you push bug fixes and minor UI changes without resubmitting to stores, but major changes or native module updates still require a full store submission.

Module 10: Deployment and Publishing

Course Overview: This module teaches how to prepare and deploy React Native apps for Android and iOS. You will learn how to build signed APKs, publish to Google Play Store and Apple App Store, and implement Over-the-Air updates using Expo.

✅ Building Android APK

Generate a release APK using React Native CLI:

# Navigate to android folder
cd android

# Generate release APK
./gradlew assembleRelease

# APK file will be at android/app/build/outputs/apk/release/app-release.apk

Tips:

  • Ensure keystore is generated for signing.
  • Update android/app/build.gradle with signing configs.
  • Test the release APK on a real device before publishing.

✅ Signing Android App

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

# Update build.gradle with:
signingConfigs {
    release {
        storeFile file('my-release-key.keystore')
        storePassword 'your-store-password'
        keyAlias 'my-key-alias'
        keyPassword 'your-key-password'
    }
}

✅ Publishing to Google Play Store

  • Create a developer account on Google Play Console.
  • Upload signed APK or AAB.
  • Provide app details, screenshots, and privacy policy.
  • Submit for review and release.

✅ Publishing to Apple App Store

Steps for iOS deployment:

  • Open Xcode and select Generic iOS Device.
  • Archive the app using Product → Archive.
  • Upload using Xcode or Transporter app.
  • Set up App Store Connect account and fill app metadata.
  • Submit for review and release.

✅ Over-the-Air (OTA) Updates with Expo

Expo allows updating apps without resubmitting to app stores:

expo install expo-updates

import * as Updates from 'expo-updates';

const checkUpdate = async () => {
  const update = await Updates.checkForUpdateAsync();
  if (update.isAvailable) {
    await Updates.fetchUpdateAsync();
    Updates.reloadAsync();
  }
};

Tips:

  • Use OTA for bug fixes and minor UI updates.
  • Major changes or native module updates still require full store submission.
  • Test OTA updates in development before pushing live.

✅ Summary

  • Build signed APKs and AABs for Android.
  • Archive and publish iOS apps via Xcode.
  • Submit apps to Google Play and Apple App Store with required metadata.
  • Use Expo OTA updates for fast bug fixes and content updates.
  • Proper deployment ensures app availability and smooth updates for users.

Leave a Reply

Your email address will not be published. Required fields are marked *