General question about ExpoKit


After ejecting with ExpoKit I have a question about future upgrades.

If I implement a custom react-native module via react-native link when it comes time to upgrade the Exponent SDK, will that upgrade recompile and destroy my iOS/Android folders forcing me to re-implement my custom module changes again? Or will Expo, ideally, only change parts that need changing, kind of like a Rails upgrade or something like that?


We don’t have a great way to handle upgrades right now, it’s a very manual process.

In any case, we won’t destroy your iOS/Android directories, it would be much more nuanced than that. We’ll change the .expo-source directory plus some other config files in your iOS/Android directories.

1 Like

@jesse or anyone else on the Expo team - can you say more about the upgrade process?

I’m thinking about ejecting to use a few Firebase libraries (e.g. Analytics, Cloud Messaging, polyfill to use Storage), but I do have workarounds in the meantime. I’m trying to estimate the long-term cost of ejecting.

Lastly - just wanted to say that Expo has been a great experience so far and I’ve already told a couple developer friends and they’re very excited!

Thanks for the kind words!

@ben is working on making the upgrade process for detached iOS smoother right now, so this is very much a work in progress. Right now you have to follow the regular upgrade steps in the release notes and then download a new version of the .expo-source directory from our servers. It’s not hard but it’s also not documented since we’re actively working on it.