OK. That’s weird.
That information is out of date
Expo has recently released EAS Build which allows you to use many packages in the Managed workflow where previously you would have had to eject to use them. Often they require a Config Plugin, though, and because EAS Build is only a few months old, many packages do not yet come with a config plugin built in. It’s possible for you to write your own config plugin.
But it looks like you’re in luck! According to the page you linked to, it already has a config plugin built in:
Prebuild Plugin
This package cannot be used in the “Expo Go” app because it requires custom native code.
After installing this npm package, add the config plugin to the plugins
array of your app.json
or app.config.js
:
{ "expo": { "plugins": ["react-native-wifi-reborn"] } }
Next, rebuild your app as described in the “Adding custom native code” guide.
So it is not necessary to eject to use react-native-wifi-reborn
. However, as it says in the instructions, you won’t be able to use Expo Go. You can, however, build a custom dev client, which is basically like a custom version of the Expo Go app.
I know the usual instructions for config plugins say that you should build your app as described in the “Adding custom native code” guide, but I’m really not sure why the Expo team recommends that, because that basically ejects your app and you need to manually clean up the changes if you don’t want that. I avoid running expo run:android
. Instead I just build a custom dev client and then use that as I would have used the Expo Go app. And then of course build a production build if I want to submit it to the stores.
Running expo run:android
definitely should not hang, so I’m not sure what’s happening when you try it, but maybe try:
eas build --platform android --profile preview
which should build an APK that you can install. Or:
eas build --platform android --profile development
to build a development client. Install expo-dev-client
as a dependency before you build.