Branch will likely be best supported in the bare workflow for a few reasons.
One is that Branch is a proprietary module and service, and we generally prefer to build non-proprietary primitives into Expo, on top of which companies like Branch can build Expo modules.
Another is that Google removed many apps from the Play Store without advance notice because they included the Branch module. The Android version of the Branch module would scan your phone for the list of apps that were installed on it. Even if we didn’t write that code nor were aware of it, we care about developer trust and having Expo apps suddenly removed from the Play Store hurts that trust.
Lastly, code that is not written by the Expo team is more expensive for us to maintain than code written by us. If Branch or any other third-party author changes a module, we need to look through the changes and figure out an upgrade path. Or if they don’t change a module in time for a new version of Android or iOS, we’re stuck too. This is true for all third-party dependencies, including React Native, and our time and energy are finite, so for the overall health of Expo we need to be judicious in choosing which third-party code to support.
So for these reasons, rather than specifically adding Branch support, we’re investing more in the bare workflow where you can use Expo with custom native code. Currently several of our services don’t work with the bare workflow, but we are working towards eventually narrowing the gap between the bare and managed workflows.