Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Google Play 64-bit requirement to solve before August 1, 2019 #8292

Closed
annadanchenko opened this issue May 28, 2019 · 4 comments
Closed

Google Play 64-bit requirement to solve before August 1, 2019 #8292

annadanchenko opened this issue May 28, 2019 · 4 comments

Comments

@annadanchenko
Copy link

annadanchenko commented May 28, 2019

Warning from PlayStore:

This release is not compliant with the Google Play 64-bit requirement

The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 2019052417.

From August 1, 2019 all releases must be compliant with the Google Play 64-bit requirement.

Include 64-bit and 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives only the native code it needs. This avoids increasing the overall size of your app. Learn More

Extra info in blog post: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html
Screen Shot 2019-05-28 at 14 37 31

@jakubgs
Copy link
Member

jakubgs commented May 30, 2019

I'm researching the 64 bit support for Android builds and here is what I found:

What we include

 $ zipinfo -1 StatusIm-190524-171002-7f38c5-release.apk | grep \.so$
lib/armeabi-v7a/libc++_shared.so
lib/armeabi-v7a/libconceal.so
...(omitted)...
lib/x86/libc++_shared.so
lib/x86/libconceal.so
...(omitted)...

So we clearly do support armeabi-v7a, but we lack arm64-v8a libraries.
According to our build.gradle we include it:
https://github.com/status-im/status-react/blob/131b423a0acb92618192be17a92a9e51feda592e/android/app/build.gradle#L158
but then we exclude the arm64-v8a(as well as some others):
https://github.com/status-im/status-react/blob/131b423a0acb92618192be17a92a9e51feda592e/android/app/build.gradle#L177
Not sure why we build for it and then exclude it(as we do with x86_64), but it seems like just removing that exclude should fix things.

@jakubgs jakubgs self-assigned this May 30, 2019
@jakubgs
Copy link
Member

jakubgs commented May 30, 2019

According to this:
https://developer.android.com/distribute/best-practices/develop/64-bit#build_your_app_with_64-bit_libraries

Most Android Studio projects use Gradle as the underlying build system, so this section applies to both cases. Enabling builds for your native code is as simple as adding the arm64-v8a and/or x86_64, depending on the architecture(s) you wish to support, to the ndk.abiFilters setting in your app's 'build.gradle' file.

I've ran a manual build with a branch(enable-arm64-v8a) that does that:
https://ci.status.im/job/status-react/job/combined/job/mobile-android/10996/
Which resulted in this:

$  zipinfo -1 StatusIm-190530-150447-756b72-pr.apk | grep \.so$ | awk -F'/' '{print $2}' | uniq
arm64-v8a
armeabi-v7a
x86

So removing that exclude clearly works.

@jakubgs
Copy link
Member

jakubgs commented May 30, 2019

This does increase the size of the APK from 51M to 68M.
I'm not entirely sure why we need the x86 libraries, or x86-64 for that matter, since we remove them anyway.

@jakubgs
Copy link
Member

jakubgs commented Oct 4, 2019

I think this can be solved as the Android builds now include the arm64-v8a architecture:
https://github.com/status-im/status-react/blob/d2a51f9711f1c74c0327fcd076dc1bff5fa32d4f/android/gradle.properties#L44

@jakubgs jakubgs closed this as completed Oct 4, 2019
@StatusWrike StatusWrike changed the title Google Play 64-bit requirement to solve before August 1, 2019 Google Play 64-bit requirement to solve before August 1, 2019 Apr 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants