Googleplay 64bit console warning

Could anyone explain to me what this 64 bit warning by the googleplay console is about and how I would get Unity android to build in 64 bit? I had no idea about this beforehand and this is the first that I've heard of it, is it difficult to get 64 bit working? Here's the full warning I get.

[quote]
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: 9.

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.
[/quote]

https://developer.android.com/distribute/best-practices/develop/64-bit

2 Likes

Bumping, could somebody point me towards any documentation or tutorials that show how to make my apps 64 bit so I don't get the warning quoted?

I'm surprised how little I could find on this topic, I was having the same issues of course, now that Google is enforcing(ish) these policies, with full requirements starting in August of this year.

Anyhow, I found this post on StackOverflow:
https://stackoverflow.com/questions/55974331/unity-export-android-64-bit

Which started me in the right direction. Just for link safety, it basically boils down to this:
Go to File > Build Settings > Player Settings > Other Settings
Change "Scripting Backend" to "IL2CPP", and make sure all boxes under "Target Architectures" are checked.
4509415--416815--upload_2019-5-6_22-57-51.png

Now, as of Unity 2018.3 (which is the version I'm using here), there's an option in Build Settings to export to an App Bundle, which is what I did and seems to be the recommended thing to do moving forward.
4509415--416818--upload_2019-5-6_23-0-8.png

If you try to build now, it will fail unless you have the Android NDK installed (which you probably don't). Guides online say to do it through Android Studio, but when I tried that, it installed a version that Unity apparently didn't like. So I downloaded my version from this link:
https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip

Obviously if that package isn't compatible with your machine, you'll have to find something different. If that's the case, this link is where I actually started with installing the NDK, so it might help:
https://developer.android.com/ndk/guides#download-ndk

NOW, you should be able to successfully build your app. It took me 3-4 times longer to build than usual after doing all this, but my app was something like 15MB smaller in size once uploaded to the Google Play store, so I'm happy with it. If you've selected the "Build App Bundle" in the Build Settings, you won't get an .apk file, but instead an .aab file AND a .symbols.zip file. You want to upload the .aab file to the Google Play Console, and it should work the same as an APK.

First time poster on pretty much any kind of forum, so take that as you will. But I kind of felt obligated to post here after not finding any other resources on the web that spelled all of these steps out. Hope it helps.

103 Likes

Thank you! This is really helpful, hopefully this should help out anyone else searching for the problem too yes, I was finding very little on google beyond some documentation that didn't really explain how to fix the problem in Unity. Now I can update my app before the google's end date.

At least I know now it wasn't just me that was struggling to find stuff on this, looks like I was right to make a topic. What surprises me is despite the date fast approaching Unity hasn't simply built this option into the engine itself somehow.

4 Likes

So for the hell of it I decided to build Unity without messing around with any third party software, it turns out they have got built in support for ARM64 and NDK as the libraries automatically compiled and built for me when I clicked the build button. Before that I got a couple of warnings when enabling those options you mentioned but the instructions were very clear and I just had to disable and remove some options.

For first time users, be warned, it will take awhile to install and may look like it's frozen but that's just the necessary libraries compiling themselves for you, I just did the build a second time and it seems to be compiling ARM64 each time. I don't know what verison of unity @GooseGamesLLC is running but I have 2019.1.0f2 and I didn't have to do the steps he took, the only thing I did was make sure Android Studio was up to date.

It would be really nice actually if we could have a Unity staff member chime in and let us know what the hell is going on with googles' compatibility requirements and these libraries.

2 Likes

Just as an extra note, on the googleplay console itself, be sure to deactivate the previous version of the APK that you had when you upload and release the new one and the warning will go away.

3 Likes

I am having the same issue now and there is no help on Internet without using App bundles

Did you try following the steps me and @GooseGamesLLC suggested? It worked for me. I myself have just run into a severe annoyance with my app getting removed by google and they're claiming I have to have a privacy policy even though I collect no personal information whatsoever and don't have ads and by their own rules as far as I can work out I don't need to put one up because of that.

Thank you!! Saved me hours of searching!

Just as an extra note, in regards to the advertising warnings that Google screeches at you about I did some research and found this.

http://www.zuluonezero.net/2019/02/11/violation-of-usage-of-android-advertising-id-policy-and-section-4-8-of-the-developer-distribution-agreement/

It turns out that google can do some kind of very detailed scans on your APK file when you submit it and there are advertising packages that come in your projects and are installed by default even if you never use them. Google picks this up and then they proceed to whine at you and take down your app. The fix as described in the really helpful blog post is to simply remove any advertising related packages through the package manager and now my app is back up.

Okay, just a heads up guys, it seems that the stupid advertising problem is so common just following the articles' advice works absolutely fine, google have some sort of blanket requirement where you need to generate a privacy policy even if you don't collect any information whatsoever and it seems to have fixed things now I've put a link in.

Phew, what an unnecessary annoyance, just to give a bullet point list for newbies so that there's no confusion, here's what you apparently need to do to keep the app up.

. Follow the instructions me and @GooseGamesLLC provided to build a 64 bit version of your android app

. Create a blanket privacy policy statement using the article I linked which seems to explain everything, if you don't require ads or anything it should be a simple case of "We do not request permissions and put ads on our apps" if you do put stuff on your apps you probably need to be very clear about it and may need to consult a lawyer possibly because they seem to be really paranoid about apps on the googleplay console

Well my app didn't get taken down overnight after following all these steps, so it should all be fine for people now if they update everything according to this thread.

Hi @Lethn i have follow your steps for fixing the issue of build 64 Bit it giving error and one thing more can you please how i can install the NDK is it required some installation ?

@rockstarsaad I wouldn't know I'm afraid, what version of Unity are you using? Also, is Android Studio up to date?

Thanks a lot, this helped me get a 64bit compatible version out.
I had to download a different NDK. When I went to export, Unity popped up a dialogue asking for the NDK. When I chose the one you linked, it declined it and said I needed r-13b, with a button to download it.

Build took a lot longer than usual, about 15 minutes (vs. 5).

I have encountered strange behaviour of Unity (2017.4.17f1).

I changed Scripting Backend to IL2CPP, checked ARM64 and Build App Bundle checkboxes ..so now Unity wants NDK for building. So I have manually installed ndk-r13b and set the NDK path via Edit->Preferences->External Tools ..but Unity pops up error during build that NDK version is invalid.

But then I remove NDK path from External Tools preferences (left it blank), I start build and let Unity prompt for NDK folder, I choose the same folder as before and now it magically works! :p

1 Like

Hi all. I tried and succeeded in building an app bundle version of my game a while back but i could not find any easy way of getting and testing a generated apk on my device. How do you do this without having to wait an eternity for google play beta builds to propagate through the internet to let you download it?

Has anyone seen any new issues after switching to an app bundle?

[quote=“Antony-Blackett”, post:17, topic: 742137]
Hi all. I tried and succeeded in building an app bundle version of my game a while back but i could not find any easy way of getting and testing a generated apk on my device. How do you do this without having to wait an eternity for google play beta builds to propagate through the internet to let you download it?
[/quote]

Download bundletool: https://github.com/google/bundletool/releases

To use it, open a command line in that directory:

java -jar bundletool-all-0.9.0.jar build-apks --bundle=BUNDLE_PATH.aab --output=OUTPUT_NAME.apks --ks=PATH_TO_YOUR_KEYSTORE.keystore --ks-pass=pass:PASSWORD_HERE --ks-key-alias="KEY_ALIAS_NAME_HERE" --key-pass=pass:PASSWORD_HERE

By default it will generate APKs signed with debug.keystore, which is why you can specify the keystore in the command.

This will create an .apks file, which is just a zip file, if you extract it, you will see the APKs for each architecture in /standalones.

2 Likes

[quote=“smithmj5”, post:18, topic: 742137]
Download bundletool: https://github.com/google/bundletool/releases

To use it, open a command line in that directory:

java -jar bundletool-all-0.9.0.jar build-apks --bundle=BUNDLE_PATH.aab --output=OUTPUT_NAME.apks --ks=PATH_TO_YOUR_KEYSTORE.keystore --ks-pass=pass:PASSWORD_HERE --ks-key-alias="KEY_ALIAS_NAME_HERE" --key-pass=pass:PASSWORD_HERE

By default it will generate APKs signed with debug.keystore, which is why you can specify the keystore in the command.

This will create an .apks file, which is just a zip file, if you extract it, you will see the APKs for each architecture in /standalones.
[/quote]

Sounds a little more complicated than the old method of upload to google play, download derived from google play. :frowning:

1 Like

[quote=“Lethn”, post:4, topic: 742137]
Thank you! This is really helpful, hopefully this should help out anyone else searching for the problem too yes, I was finding very little on google beyond some documentation that didn’t really explain how to fix the problem in Unity. Now I can update my app before the google’s end date.

At least I know now it wasn’t just me that was struggling to find stuff on this, looks like I was right to make a topic. What surprises me is despite the date fast approaching Unity hasn’t simply built this option into the engine itself somehow.
[/quote]

Thank you to all, i changed couple settings as @GooseGamesLLC but i only changed ones on the first screen shot, i downloaded and extracted the ndk and then built as normal using internal build not gradle, after a while the build was a success and i was presented with an apk and a symbols zip folder, i uploaded the apk to google play and the 64bit warning was not there anymore.

2 Likes