Search Unity

Successful Unity aab build not compliant with the Google Play 64-bit requirement.

Discussion in 'Android' started by Nikolasio, Aug 16, 2019.

  1. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    59
    Hi,

    I'm switching from APK to AAB.

    With a successful Unity aab build, following these guidelines:
    https://forum.unity.com/threads/googleplay-64bit-console-warning.672988/
    https://developer.android.com/distribute/best-practices/develop/64-bit

    I’m still getting the following error in the google Play Console:

    “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”

    1. I have both ARM7, ARM64 and x86 architectures set.
    2. When I open the .aab in an archive viewer, the lib folder has all of the .so's for both arm64-v8a and armabi-v7a.
    3. Using IL2CPP, .NET 4.x
    4. Unity 2019.1.9f1
    5. Android Studio 3.4.2
    6. SDK Platform: 9.0(28);Platform-Tools: 29.0.2, tools:26.1.1 (I have tried builds with the Unity hub delivered SDK or with my downloaded copy, I still get the same error in the google play console)
    7. NDK: 16b

    Is this a Unity problem?
    Or Google bug ?(https://stackoverflow.com/questions...liant-with-the-google-play-64-bit-requirement)
    Or is there some other step I'm missing?
     
    Eewhukn, lazyninjacat and chuck666 like this.
  2. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    We've been doing the same process for the past 20+ builds without issue, but this morning our build is getting rejected by Google with the same error. Not sure if this is a Google problem?
     
    chuck666 likes this.
  3. kaarelr

    kaarelr

    Joined:
    Feb 26, 2016
    Posts:
    8
    Have the same problem, checked that all libraries have 64-bit counterparts using APK Analyzer, but still can't upload the app (to beta track).
     
    chuck666 likes this.
  4. DeborThiel

    DeborThiel

    Joined:
    Feb 13, 2017
    Posts:
    5
    Same problem here: Since today my app bundle gets rejected from google play and it used to work for the last 5 builds.

    I'm using
    Unity 2019.2.0f1,
    IL2CPP,
    ARM7, ARM64 and x86,
    .NET Standard 2.0,
    Master-Release
     
  5. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    This is likely caused by x86 (32bit) not having a 64bit counterpart.

    Quick fix for us was to remove x84 support. But this means a bunch of people who have the x86version of the app are goners.
     
  6. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    101
    Same here, just happened for me too.
    over 50 successfull builds and uploads.
    .NET 4.X equivalent
    IL2CPP
    .NET Standard 2.0
    Release
    ARM7,ARM64,X86
    Any fixes yet?
     
    Last edited: Aug 19, 2019
    clevergamesdev and chuck666 like this.
  7. kaarelr

    kaarelr

    Joined:
    Feb 26, 2016
    Posts:
    8
    I uploaded the same build that was accepted on Friday into internal track to beta track today and it failed. Must be something wrong from Google's side.
     
    chuck666 likes this.
  8. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    101
    I even went on google dev live chat and was (as expected) just bombarded with copy-paste links about switching to 64 bit code since 01 AUG.

    It now seems it's a problem on their end.
     
  9. JSTARCOM

    JSTARCOM

    Joined:
    May 18, 2012
    Posts:
    2
    I have the same problem.
     
  10. mrm83

    mrm83

    Joined:
    Nov 29, 2014
    Posts:
    345
    Do you guy's build support x86 64bit?
     
  11. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    101
    chuck666 and n8mob like this.
  12. kaarelr

    kaarelr

    Joined:
    Feb 26, 2016
    Posts:
    8
    Removing it does work (as mrm83 already said).
     
    sendibad1989, ljsiri and n8mob like this.
  13. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    101
    Would this not stop the app from working on an x86 devices? I dont know enough about this stuff to understand it all.
     
    n8mob likes this.
  14. kaarelr

    kaarelr

    Joined:
    Feb 26, 2016
    Posts:
    8
    I am not entirely sure either, I don't have an x86 device at hand to test. I will get back to you after getting more information or finding a compatible device.
     
  15. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    101
    Anyone have any other workarounds yet or can confirm that disabling x86 won't have any impact on user acquisition?
     
  16. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,920
    x86 is used by less than 0.4% of all Android devices, so it shouldn't have any real impact.

    You may probably already noticed but in 2019.2 x86 target is marked as deprecated, in 2019.3 it will be removed completely.
     

    Attached Files:

  17. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    101
    Great thanks for the clarification.
    Still not sure why only today this error appeared on Google console.
     
    chuck666 likes this.
  18. lionel178

    lionel178

    Joined:
    Aug 31, 2018
    Posts:
    1
    good night, I have the same problem, I can't update my app, but I remove the x86, and I get another warning.
     
    chuck666 likes this.
  19. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    59
    I filed a bug report with the respective aab with Google. They're on it. Keep you guys informed.
     
  20. chuck666

    chuck666

    Joined:
    Sep 29, 2016
    Posts:
    6
    Same problem here.

    Please keep in mind much developer are not able to upload aab (app bundle) because of incompability with some library their have to build an apk.

    It should also work with apk files.
     
  21. Flag74

    Flag74

    Joined:
    May 31, 2017
    Posts:
    128
    same here
     
  22. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    59
    I disabled x86, built successfully, and still get the error in the play console.

    Then I split the apk's, build successfully, imported the armv7 and arm64 separately into the play console and still get the error.

    And when I build and run an apk on an arm64 device, it runs smoothly.

    Since I upgraded from 2018.3 to 2019.1, I do get a lot warnings: [CS0067] [CS0414] [CS0612] [CS0649][CS0618]. Something VS related, but not to worry I think?
     
  23. playspace

    playspace

    Joined:
    Nov 17, 2014
    Posts:
    4
    Hi,

    We had the same issue, to solve it in our case:
    1. We removed x86 from "Target Architectures" in Unity
    2. On the build.gradle we had to exclude x86 in the packagingOptions
    Code (CSharp):
    1. packagingOptions {
    2.         doNotStrip "*/armeabi-v7a/*.so"
    3.         doNotStrip '*/arm64-v8a/*.so'
    4.         exclude ('/lib/armeabi/*' + '*')
    5.         exclude ('/lib/mips/*' + '*')
    6.         exclude ('/lib/mips64/*' + '*')
    7.         exclude ('/lib/x86_64/*' + '*')
    8.         exclude ('/lib/x86/*' + '*')
    9.     }
    If you uncompressed the aab as a zip file and in "base/lib" you have x86 without x86_64 is not going to work. In our case we removed both.

    I hope this helps,
     
  24. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,920
    Out of curiosity, if you deselected x86 architecture in Unity, what libraries you then have in x86 folder, because Unity should stop copying its own libraries, so I assume there are other libraries being copied there (maybe coming from plugins or aar files) ?
     
  25. playspace

    playspace

    Joined:
    Nov 17, 2014
    Posts:
    4
    In our case was the Firebase plugin, that was copying the files even if we didn't had the x86 architecture. I don't know why at this moment, but we are looking into it.
     
  26. mvaz_p

    mvaz_p

    Joined:
    Aug 22, 2018
    Posts:
    80
    Same happening here.
    Also tried to relaunch an old (compliant) version on an internal test track and it gave us the same warning.
    Looks like a problem on Google's side.
     
  27. playspace

    playspace

    Joined:
    Nov 17, 2014
    Posts:
    4
    Well the problems seems that during some days Google play was accepting the builds with content not prepared for 64 bit by error and they solve it yesterday. As the say in this Link if you have content in the aab like x86 without x86_64 they are going to reject the build.
     
  28. lazyninjacat

    lazyninjacat

    Joined:
    Feb 8, 2019
    Posts:
    4
    Same here. Tried everything suggested so far, but no luck yet.
     
  29. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    59
    Hi @playspace,

    Thx for the info. Following the Unity docs, I added those packagingOptions to a mainTemplate.gradle file (provided after checking the Custom Gradle Template in the Publishing Settings).

    Is it here that you added the packagingOptions or directly in the build.gradle?

    Still getting the error in the google play console.
     
  30. playspace

    playspace

    Joined:
    Nov 17, 2014
    Posts:
    4
    Hi @Nikolasio

    We have a customized build process that is very different form the Unity docs. At the end in the root of the generated android project you have to add it inside the android block that is inside the build.gradle:

    Code (CSharp):
    1. android {
    2.         ....
    3.         packagingOptions {
    4.         }
    5.         ....
    6. }
    I recommend modify the file manually to see if the solution really work for you and then add it in the unity project.
     
  31. DonPiedro

    DonPiedro

    Joined:
    Jul 6, 2018
    Posts:
    4
    any solution yet ?
     
  32. kaarelr

    kaarelr

    Joined:
    Feb 26, 2016
    Posts:
    8
    Here's some data for our app after removing the x86 support. Only 2 phone devices out of 5884 are no longer supported and 5 wearable devices (out of 35).

     
    Cookieg82 and ljsiri like this.
  33. AnkorGame

    AnkorGame

    Joined:
    Mar 5, 2019
    Posts:
    1
    i'm sorry, where you were able to see this statistic on the playstore Console?I can't find it
     
  34. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    59
    Thanks @playspace. I exported the project via the build settings, opened it in android studio, changed the build.gradle with the new packagingOptions, built aab with android studio, and still get the error.

    Out of options for the moment. I'm still waiting on a proper reply from Google, they're investigating the aab I sent them.
     
  35. ZhenglangTech

    ZhenglangTech

    Joined:
    Dec 21, 2018
    Posts:
    7
    I published an update on Monday with all arm32 , arm64 and x86 support combined in one aab package. However, it is neither rejected nor passed the review.

    Maybe google is busy in looking into this issue as well.
     
  36. DTsoukalos

    DTsoukalos

    Joined:
    Jul 11, 2019
    Posts:
    8
    I had the same problem. Finally i read this post so i disable the x86 architect.
    Now everything works fine - i lost only 7 devices
    Supported Android devices before 12414 devices
    Supported Android devices now 12407 devices
     
  37. kaarelr

    kaarelr

    Joined:
    Feb 26, 2016
    Posts:
    8
    These statistics are shown on the review screen after uploading a new build to the Google Play. They're only shown if you go from an x86 build to a non x86 build though.
     
  38. ChewyAC

    ChewyAC

    Joined:
    Mar 17, 2017
    Posts:
    1
    Trying to update an app that used 32 bit but now I've removed x86 to comply with using just 64 bit I get an error saying:
    "You can't roll out this release because it doesn't allow any existing users to upgrade to the newly added APKs." and now I am unable to 'Start roll-out to production'. So I am unsure what to do...

    Edit: Never mind. The newer build had a lower version code. Just changed it to be higher then the old build
     
    Last edited: Aug 22, 2019
  39. firedragon9511

    firedragon9511

    Joined:
    Nov 24, 2017
    Posts:
    13
    Same problem.
     
  40. Paul-Naylor

    Paul-Naylor

    Joined:
    Apr 15, 2013
    Posts:
    2
    I can shed a little light on this I think... I've talked to the folk at Google and they said that to support 64bit
    "you must provide 64-bit versions for both platforms you're using: ARM and x86."
    which is a problem since the the best of my knowledge (I'm on Unity 2018.4) Unity doesn't support x86_64
    They also said "If you are unable to add 64-bit version for platform 'x86', you can simply remove the 32-bit version of 'x86' and the notice will be disable from your Console."
    but at a guess that's a few(?) percent of players that will not get further updates of our game.
     
  41. Nikolasio

    Nikolasio

    Joined:
    Dec 6, 2014
    Posts:
    59
    Got an answer from google dev. In my case, a .bc file forced the 64-bit apk to run in 32-bit. So any apk with a .bc file will be treated as if it’s 32-bit, no matter what .so files it contains (or not).

    It was the natcorder.bc file in my case. An update from Natcorder 1.3 => 1.6 should fix it (https://forum.unity.com/threads/natcorder-video-recording-api.505146/page-34).

    By the way, this seems to output more detailed error messages: https://developer.android.com/studio/command-line/bundletool.
     
    ROBYER1 and Unity_User_2 like this.
  42. JGOVB

    JGOVB

    Joined:
    Apr 22, 2019
    Posts:
    1
    Had the same problem.
    Solved it by removing x86 target architecture leaving only ARMv7 and ARM64.
     
    ROBYER1 likes this.
  43. firedragon9511

    firedragon9511

    Joined:
    Nov 24, 2017
    Posts:
    13
    Yes. Me too.
     
  44. phongle

    phongle

    Joined:
    Apr 26, 2017
    Posts:
    3
    I got the same issue.
    I have no x86 checkbox with Unity 2019.3.0a4 but just ARMv7 and ARM64. I have sent an email to Google support and still waiting for reply.

    upload_2019-8-24_20-47-6.png

    upload_2019-8-24_20-47-25.png
     
    Deiverson likes this.
  45. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,920
    That's expected, in 2019.3 x86 is removed
     
  46. swifter14

    swifter14

    Joined:
    Mar 2, 2017
    Posts:
    165
    I have the same problem. I unchecked x86 but the problem remains.
    Also, when I click on my Android App Bundle that I uploaded on Google Play Console it says-
    Native platforms: 1 native platform: armeabi-v7a
    Why only one? I check on Unity IL2CPP: ARMv7 + ARM64 (and disabled x86)

    The error I get is:

    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.

    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
     
  47. swifter14

    swifter14

    Joined:
    Mar 2, 2017
    Posts:
    165
    OK this video helped me-
     
    palfrey_games likes this.
  48. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,920
    Check if you don't have custom gradle template, which excludes arm64 in packagingOptions
     
  49. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,920
    Unzip the app bundle and check it yourself if there are any x86 libraries in there
     
    mahmoud93p likes this.
  50. DonkeyL

    DonkeyL

    Joined:
    Aug 27, 2019
    Posts:
    2
    I have the same problem. I checked ARMv7 + ARM64 (unchecked x86) but the problem remains. Need we wait for Unity release to support x86_64?