EAS and expo-dev-client

Hello, I have some questions on the combination of EAS and expo-dev-client

  1. here Getting Started - Expo Documentation in “Installing expo-dev-client in your project” as well as “Customizing your runtime”, “config plugins” are mentioned as something that EAS will use at build time to “enhance” the native xCode and Android studio projects.

I generated a new clean project using npx crna -t with-dev-client (as documented in Installation in React Native and Bare workflow projects - Expo Documentation) and I just want to confirm that in this case, I do not need to use the config plugins. I will do necessary changes (eg. for permission dialogs) that would normally be done by config plugins by myself in xcode and android studio, as I’m familiar with them and do not want to add any abstraction on top of them. Is my understanding correct?

  1. with regard to Extending the Dev Menu - Expo Documentation - is it possible to extend the dev menu from JS, just like in vanilla RN? Thank you! :slight_smile:

  2. can I expect the expo-dev-client to work with newer versions of RN than those that are included in the latest Expo SDK? Can I expect the EAS builds to build newer versions of RN than those that are included in the latest Expo SDK? (I assume yes, but want to confirm :slight_smile: )

Thank you!

Hi @vonovak,

  1. Correct, config plugins are an alternative to modifying you Android and iOS projects directly, and if you created a project from the template or installed in an existing React Native / Bare project you don’t need to, and in fact should not, use plugins.

  2. Extending the menu from JS is planned, but currently only native extensions are possible. You can still access the RN menu when using expo-dev-menu, so it is technically possible, but not ideal.

  3. EAS build can handle arbitrary XCode or Android Studio projects, so you shouldn’t have any problem with new RN versions :slight_smile:

That is the vision for expo-dev-client as well, but the coupling with RN is much tighter, and we’ve had a hard time keeping up with the pace of new RN releases while making progress on other fronts. For now, the latest version of expo-dev-client will support the version of RN used in the latest Expo SDK and however many newer versions we are able to support. If you want to use a newer version, you might need to write a patch to wire things up correctly.

Reporting issues with newer versions of RN and patches to get things working is much appreciated and makes it easier for us to get support for those newer versions it to the package :slight_smile: