64 bit version issue in react-native android app by google play store

According to https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html:

In August 2019, Play store will require that new apps and app updates with native libraries provide 64-bit versions in addition to their 32-bit versions.

I have a React Native application (which includes native code). My question is how can I know whether a third party library I'm using or even my own code is not supporting 64-bit? And how can I fix it?

Update

I added x86_64 to my build.gradle and I now see the x86_64 folder in the apk but I think some of the files are missing.

Here is, how my x86 folder looks like:

And here is how my x86_64 folder looks like:

React Native will support 64 bit for android starting version 0.59

https://github.com/facebook/react-native/issues/2814#issuecomment-457688789

https://github.com/facebook/react-native/commit/f3e5cce4745c0ad9a5c697be772757a03e15edc5

Prologue. A lot of developers received an email from Google about changes in Google Play Marker. Starting from August 1, 2019 Google Play will accept only 64-bit version of the application, so if

All of the native code for an app is stored in the libs/ directory in the root of the apk. eg for compiled ARM or x86 code, you can find it in libs/architecture_type/lib_name.so.

An APK is essentially just a zip file so you can extract it with any zip tool.

The list of architectures (ABIs) is here. If you don't have directories for arm64-v8a or have x86 but don't have x86_64 then you are missing the 64 bit native code.

If you have react native made Android apps published on Google Play Store then you might have received email from Google Play Store telling to make your app 64 bit compliant. The email you got from Google Play Store starts as given below: Hello Google Play Developer,By August 1, 2019, all apps that use native code must provide a 64-bit version in order to publish an update. As of the sending of this email, at least one of your apps* does not yet meet the requirement:

https://github.com/facebook/react-native/issues/2814

Facebook seems to be dragging their feet on supporting 64 bit builds.

You can check the intermediates in the build folder to see what abis you are supporting.

https://developer.android.com/ndk/guides/abis.html

Android takes the lowest common denominator of build abi. This is going to become an issue if Facebook doesn't address it soon.

Why GitHub? Features →. Code review; Project management; Integrations; Actions; Packages; Security

React native has been released the new version of the react native on 12 march. In this new version react native support the 64 bit systems. You can read more detail about this on below link. http://facebook.github.io/react-native/blog/2019/03/12/releasing-react-native-059

on Android developer site. So I turned 'Version name' back to 1.0.0.0 and upped 'Version number' (VS19C/XamarinForms alias for 'Version code') to 2, rebuilt, archived and uploaded to Google Play Console and I was almost there, but not there yet. STEP 3

react-native new versions support 64 bit automatically. just update react-native version to 0.59.0 or after and rebuild your application, just run:

react-native upgrade 0.59.1

From August 2018, new apps must target at least Android 8.0 (API level 26). From November 2018, app updates must target Android 8.0 (API level 26). react-native react-native-android

In some cases, the 32-bit version of Java may result in memory issues. It's a good idea to install the 64-bit version. Android requires all app packages (.apk) to be signed.

Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.

A publishing service may also need to check the app version to determine compatibility and establish upgrade/downgrade relationships. The Android system uses your app's version information to protect against downgrades.The system does not use app version information to enforce restrictions on upgrades or compatibility of third-party apps.

Comments
  • Can you let us know if this was enough to make your Android app compliant? I'm still on RN0.40 and don't wanna upgrade everything.
  • how can you check your compliant? have the same issue
  • React Native 0.59 is released and supports android 64 bit architecture.
  • So I will have to update the react native version to provide the 64 bit architecture support right?
  • I have an app published on Play store using 0.57 version of react native and now I received the mail regarding 64 bit version so what I have to do now? Should I just update the react native version for that project to 0.59 and then publish an update of it?
  • Yes, just upgrade to 0.59 and generate new builds. Upload it, if it works fine!
  • Is there really no way to make it work on earlier versions like react-native 0.57.8 at all? Ive inherited a massive RN project, and while I've tried to upgrade it (it was 0.54 when I received it) moving to 0.58 turned out to be impossible because it no longer works at all wit relay-classic; and I still have almost 200 files still using relay-classic to convert.
  • Thanks!! I updated my build.gradle to compile x86_64 as well but I think it is not enough because there is only one file in the output folder. See my update in the question.
  • With a new React Native project (0.59.8) I have all the libs: x86_64, x86, arm64-v8a, armeabi-v7a and they contain the same files. I suppose that means the APK supports 64 bit.
  • In which folders under intermediates should I check? So far I don't see any abis at all. Hoping that's a good thing.
  • How can i know if my app 32 or 64bit after upgraded?
  • you could know that from the generated apk files
  • Just i see a release.apk!