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:
- 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.
- 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.
- Create a new project with
expo init
- choose blank or blank (TypeScript). - Start copying your source over and getting it to a working state piece-by-piece.
- Configure things like the bundle identifier, icon, splash screen, and android package in app.json.
- Publish it in
expo publish
, do a simulator build withexpo build:ios -t simulator
and a build you can run in the Android emulator (apk, not app-bundle) withexpo build:android -t apk
. - 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. - Run
expo build:ios
andexpo build:android
when you're ready to do a store to submit to TestFlight and Play Store.
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.