Skip to content

Instantly share code, notes, and snippets.

@brentvatne
Created June 20, 2020 00:51
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brentvatne/1609e6ff0386197a9b9ee198614d53d0 to your computer and use it in GitHub Desktop.
Save brentvatne/1609e6ff0386197a9b9ee198614d53d0 to your computer and use it in GitHub Desktop.
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.
@john012343210
Copy link

is there any better way ( automatic)

@EvanBacon
Copy link

The new process for moving from manual native modifications to fully automated (expo prebuild) is officially documented https://docs.expo.dev/guides/adopting-prebuild/

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