Update regarding 64-bit Support And Branch

Hey Exponauts,

We want to provide clarity around 64-bit support, and also address those of you using the Branch module.

SDK33 is the first SDK version built on RN 0.59, which allows for 64-bit support, and we’ve already enabled said support on our builders for SDK33. Since previous SDK versions are built on React Native versions predating 0.59, it’s not possible for us to retroactively add 64-bit support to them. In order to comply with Google’s requirement, you’ll need to submit an .apk file built with SDK33 or SDK34 (upon its release).

Some time between SDK32 and SDK33, we removed the Branch module from being bundled in your Android .apk files, since Google had begun removing apps without warning to counter privacy issues they’d identified in a Branch endpoint. To reduce undue risk to our end users, we’ve kept Branch from being bundled in SDK33, and will continue to do so for SDK34. For those of you currently using the Branch module, our Bare workflow lets you build an .apk file that both has 64-bit support enabled and the ability to use the Branch module.

If you have any questions, please don’t hesitate to ask! For more information, please see our recent blog post!

Cheers,
The Expo Team

7 Likes

We already know that Apk file sizes made with Expo are too big when we compare with Pure RN builds.

After adding 64 Bit support, Apk file sizes almost doubled. Is there any way to split builds by architectures? Or are you planning to do it?

Great news! Assuming I’m already using SDK33 - do I need to do any other updates/changes? Or expo build:android command will automatically provide me with 64-bit version?

Hey @harky, you can make use of Android App Bundles (AAB) by running the command expo build:android -t app-bundle.

1 Like

64-bit support will be enabled automatically when building as long as you’re using an up-to-date version of expo cli!

Thanks for your help. I really need this line of command :smile:

Thank you so much.

1 Like

So, What about the projects with SDK 32.0.0?

Hey @woohgo,

As I mentioned above, you’ll need to update as SDK32 is running on RN 0.57 and only as of RN 0.59 was 64-bit support available.

Cheers!

@adamjnav any idea on ETA for getting this into ExpoKit v33? Thanks!

Hey @mjgallag,

You can actually do this now. Another developer followed this guide and successfully built a 64-bit ExpoKit app. https://medium.com/@andriidrozdov/reactnative-and-android-64-bit-new-google-play-market-rules-what-to-do-584b067d6f1a

Cheers!

Hey, thanks so much for clarifying, much appreciated post!!

Is there anything special we need to do to enable 64-bit on an SDK 33 ExpoKit project? Do we upgrade to a particular point release of expokit?

2 Likes

So for ExpoKit, we will need update Expo SDK to 33 version, and also follow that guide?

@adamjnav All of that guides are unclear and messy, if I have ExpoKit version 32, what should be updated in which order? In this blogpost, says that we should use that guide if we have ExpoKit 33 and higher. Where is the guide how to update ExpoKit from 32 to 33 then?

@adamjnav Is that this guide? https://docs.expo.io/versions/latest/workflow/upgrading-expo-sdk-walkthrough/ or there is some another guide for ExpoKit?

Hey @luckygirlllll,

The guide for ExpoKit upgrades are found here: https://docs.expo.io/versions/latest/expokit/expokit/#upgrading-expokit

Cheers,
Adam

Thanks! Should I update expo before updating ExpoKit, in that case?

I mean, should I do this step (changing dependency in package.json):

{
“react-native”: “https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz”,
“expo”: “^33.0.0”,
“react”: “16.8.3”
}

@adamjnav To what version I should update react native, when I’m on that step? should it be 0.59.1 or “https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz” ?

Yep! Follow the normal Js instructions and then proceed to ExpoKit specific instructions. My bad did not thoroughly read your comment. Use the tar.gz url!