Do ExpoKit users follow "Managed" or "Bare" instructions?

A few things have converged to cause me to wonder if I’m really doing things right just about every time I try to integrate part of the Expo SDK into my ExpoKit project:

  • the move to unimodules
  • breaking out of many different Expo SDK API’s into separate packages
  • moving of several former React Native API’s to separate react-native-community packages
  • the near-but-not-quite-deprecation of ExpoKit

In short, I have no idea what is actually in ExpoKit anymore vs what is in a unimodule vs what actually needs to be natively linked.

react-native-webview is an example. Go to the docs and it says “do X if using managed, do Y if using bare.” I just followed the “bare” instructions, which required native linking, because I assumed ExpoKit was more like bare than managed. But I just got an iOS linker error saying I had react-native-webview in two different cocoapods, so I’m assuming I shouldn’t have done that. Though the Android build just worked, so I’m not sure I want to unlink it there.

On the other hand, there’s expo-analytics-amplitude. Was I following the Managed or Bare docs? In a sense, I was following managed, because all I had to do was run expo install.... On the other hand, I had followed Bare because I had unimodules already installed.

Are there are hard-and-fast rules for how the remaining ExpoKit users should treat “if Managed, do X, if Bare, do Y” instructions until we can move over to Bare? Any exceptions?

1 Like

Whatever the rule is, I’m now pretty confident it’s not just follow one or the other. Following bare instructions for react-native-webview breaks the iOS build; meanwhile, following managed instructions for expo-image-picker causes said image picker not to work.

Hey @llamaluvr,

Unfortunately the answer here is a rather ambiguous “follow both”. We’re getting quite close to bringing parity between Bare projects and ExpoKit and then you’ll be able to just follow Bare instructions and no longer have to deal with the added confusion and complexity that arises from ExpoKit. Until then, it’ll be a bit of trial and error and we apologize for this.