I have made a game for Android. I have develop and built it in Unity but when I try to distribute the game to the play store I get the following error:
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: 3.
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
Can someone help with this?
In the Player Settings window, under the Other Settings tab, there are checkboxes for what target architectures your app supports. Uncheck the x86 one, if it's there (that depends on your Unity version), and make sure both ARMv7 and ARM64 are checked.
For x86, Unity supports only 32 bits. So if you check that target, the Play Store will complain that no 64 bits version is provided for the x86 platform.
Related
So, I have this old app and I want to publish a new update but in the play store it's showing up this error.
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: [18]
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
I looked up and didn't find any useful info.
I have this in my Gradle file
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
This is what is showing up when I'm analyzing my APK.
I've generated a release apk of my Android project in order to do some internal testing via the Developer Console.
Upon generating it, I clicked to analyze the APK file. From the picture I see most of my APk allocations go to libraries and assets.
I'm focusing on the architectures of ARM X86 and X64. I believe they are processor speeds on phones and
upon the APK being installed on a phone the Play Store will determine the phones processor and architectures and then download my APK based on that scenario.
My question is that with Android migrating to 64 bit architecture apps can't I get rid of the ARM architectures that aren't 64 bit based.
I'm unsure of what do do and would like to get rid of these extra architectures if possible to reduce APK size.
Please see the picture provided
Today, the vast majority of Android devices today are arm. The Device Catalog on the Play Console reports 98% of devices supported by Play are running on ARM. Although this number does not take into account devices not supported by Play or the number of users on each device, it still gives you an idea of the proportions.
That being said, regardless of the architectures you choose to support, when publishing to Play, you should always add support for 64 bits of that architecture. For example, if you want to support arm, you must have the libraries for arm64-v8a and if you want to support x86, you must have the libraries for x86_64.
However, to reduce APK size, there is now a better way: publishing an Android App Bundle. Play introduced this new publishing format to solve that exact problem: you publish a single App Bundle to Play, and Play takes care of generating the APKs optimized for each device, containing only the files needed for their device architecture, screen density and language (customizable).
All it takes is to enroll in Play App Signing in the Play Console (so that Play can sign the APKs it generates on your behalf), and select "Build Android App Bundle" in Studio instead of "Build APKs". -- If you use Gradle, gradlew bundleRelease instead of gradlew assembleRelease.
Hope that helps,
I have built a game in Unity Android.
I want to upload multiple APKs targeting different CPU architectures in Google Play Developer Console.
Targeting 64 bit CPU architecture is compulsory, we cannot publish apps without targeting 64-bit architecture. I have uploaded APK targeting ARM64 CPU architecture and rolled it out to production successfully.
Now the problem is that I want to add APKs targeting ARMv7 (32-bit) and x86 CPU architectures.
For that, I have:
Created New Release.
Uploaded APK that targets ARMv7 with different Version code.
I have retained previous APK that was targeting ARM64 so that current release will offer 64-bit version for 64-bit devices.
Now when I Proceed to Review I am getting errors
Error
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: 8.
Fully shadowed APK
Problem:
This APK will not be served to any users because it is completely shadowed by one or more APKs with higher version codes.
Here is the Screesnhot:
It is saying that I need to include support for 64-bit architecture. But I have already uploaded APK previously for the same. I cannot upload ARMv7 and x86 versions of the app.
Starting August 1, 2019, your apps published on Google Play will need to support 64-bit architectures. 64-bit CPUs deliver faster, richer experiences for your users. Adding a 64-bit version of your app provides performance improvements, makes way for future innovation, and sets you up for devices with 64-bit-only hardware.
Source: Support 64-bit architectures
If you are using a version of Unity that supports 64-bit Android libraries, you can generate a 64-bit version of your app by adjusting your build settings. You will also need to use the IL2CPP backend as your Scripting Backend (details here). To set up your Unity project to build 64-bit architecture, do the following:
Go to Build Settings and ensure you are building for Android by
verifying that the Unity symbol is next to Android under Platform.
If the Unity symbol is not next to the Android platform, select
Android and click Switch Platform.
Click Player settings.
Player settings in Unity
Navigate to Player Settings Panel > Settings for Android > Other
settings > Configuration
Set Scripting Backend to IL2CPP.
Select the Target Architecture > ARM64 checkbox.
set target architectures in Unity
Build as normal!
You should provide bigger bundle version code for more enchansed apk.
In this case arm64 Version Code must be 8, and arm-v7 Version Code is 7.
This is because the "device" is looking for the first matching APK with the highest Version Code. And since arm64 cpu support arm-v7, then in your case they will all receive the arm-v7 version, since its Version is higher, ie it hides the assembly for arm 64.
when i try to upload my up to google play i receive this erreur
Error
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: 6.
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.
yes, the issue is you have not updated your library in Gradle some of your libraries still build in native 32-bit that's why u are getting this issue to fix this see all folders have the same no of file. And update ur Gradle libraries
Error while trying to upload a apk file
Tried changing version code
Error Message
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: 6.
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
Warning Message
Unoptimized APK
Warning:
This APK results in unused code and resources being sent to users. Your app could be smaller if you used the Android App Bundle. By not optimizing your app for device configurations, your app is larger to download and install on users' devices than it needs to be. Larger apps see lower install success rates and take up storage on users' devices.
Resolution:
Use the Android App Bundle to automatically optimize for device configurations, or manage it yourself with multiple APKs.
Help me upload the apk
Your app relies on native libraries, either code you compiled or from external dependencies. From the error message, it looks like you are providing only native libraries in 32-bit (e.g. armeabi-v7a, x86) and it is now required to also provide native libraries in 64-bit (e.g. arm64-v8a, x86_64).
Make sure you compile for the 64-bit ABIs, or depend on libraries that support 64-bit.