Skip to content

Instantly share code, notes, and snippets.

Created June 20, 2020 00:51
What would you like to do?
Converting a bare React Native app to a managed Expo app

Hi there!

There's no automated way to do this, but it shouldn't be too hard to pull off! I'd say to just give it a shot using the following process:

  1. What custom native code are you using in your app? Can it be replaced by something from the Expo SDK? If not, you may not be able to use the managed workflow for now and your journey ends here.
  2. The same applies for libraries - here is an exhaustive list of libraries in the Expo SDK in an easy to read JSON format. Compare that with your package.json.
  3. Create a new project with expo init - choose blank or blank (TypeScript).
  4. Start copying your source over and getting it to a working state piece-by-piece.
  5. Configure things like the bundle identifier, icon, splash screen, and android package in app.json.
  6. Publish it in expo publish, do a simulator build with expo build:ios -t simulator and a build you can run in the Android emulator (apk, not app-bundle) with expo build:android -t apk.
  7. Once that's all in a good spot, run expo credentials:manager in your app. Use this to provide the credentials (keystore, distribution cert, provisioning profile, etc) to run your app on the build service.
  8. Run expo build:ios and expo build:android when you're ready to do a store to submit to TestFlight and Play Store.
Copy link

Is this still the recommended process? Cheers!

Copy link

is there any better way ( automatic)

Copy link

The new process for moving from manual native modifications to fully automated (expo prebuild) is officially documented

In regards to using the services—EAS Build and EAS Update both support any React Native app, regardless of if Prebuild is used or not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment