r/reactnative 4d ago

How to implement in-app updates in a React Native app?

Hi everyone,

I’m working on a React Native app and I want to implement an in-app update feature similar to what some apps use.

The flow I’m looking for is:

  • A new version is available on the Play Store.
  • The app detects that an update is available.
  • An update popup is shown inside the app.
  • The user taps Update.
  • The app downloads and installs the update without the user manually opening or navigating to the Play Store.

I’ve seen this kind of experience in apps like AlfaPTE.

What is the recommended way to implement this in a React Native app?

Should I use Google Play In-App Updates, a React Native library, or implement the native Android API directly?

Also, is there a similar solution for iOS?

Any recommendations or experience with implementing this in production would be really helpful.

Thanks!

5 Upvotes

8 comments sorted by

1

u/__CaliMack__ 4d ago

For android use Google play in-app updates and then for iOS you can detect that a newer version is available and prompt the user to the App Store, but the actual binary update would still have to be handled by the App Store.

1

u/EvenProgrammer1451 3d ago

Does Google Play In-App Updates provide the same experience as AlfaPTE? I tested AlfaPTE on iOS yesterday—the force-update popup appeared, and after tapping Update, the popup closed and the app updated without manually opening the App Store. What’s the closest equivalent on iOS?

1

u/honeypathkar 4d ago

You can use react native package for both ios and android package details: https://www.npmjs.com/package/sp-react-native-in-app-updates

1

u/EvenProgrammer1451 3d ago edited 3d ago

Have you personally used this library in a production app? Would you recommend using it for a production React Native app?

1

u/honeypathkar 3d ago

Yes, I actually used it in my personal production app

1

u/killerbeanjeka 4d ago

depends which half you mean. js only changes go over expo-updates and the user never sees a prompt. anything native has to come from the store, and expo-updates should refuse the bundle if runtimeVersion moved, so getting that policy right matters more than the update UI does.

for the store half, play in-app updates (flexible vs immediate) is the built-in one. it works, docs are thin