[AC-6357] Error: This release is not compliant with the Google Play 64-bit requirement
GitHub Issue | n/a |
Type | Bug |
Priority | n/a |
Status | Closed |
Resolution | Invalid |
Resolution Date | 2019-10-03T16:36:53.000+0000 |
Affected Version/s | Appcelerator Studio 4.5.0 |
Fix Version/s | n/a |
Components | Titanium SDK & CLI |
Labels | 64bit, android, playstore |
Reporter | Thomas Neerup |
Assignee | Shak Hossain |
Created | 2019-09-05T08:21:32.000+0000 |
Updated | 2019-12-12T15:29:48.000+0000 |
Description
Not able to upload Titanium App to Google play any more...
I'm using sdk 8.1.1..
First i thought it was my modules that was the problem, but efter removing all modules, I stille get the following error when I upload to Google Play, see atached file.
I know google upped the requirements last month.
Can anyone verify that Appcelerator can upload apps to Google play?
Any advice to what I might do wrong?
I tried opening the APK in Googles APK Analyzer and verified that it contained lib/arm64-v8a folder with all *.so files
/Thanks
Attachments
It sounds like "x86" .so libraries are being bundled into your app. By default, Titanium "production" built apps only include the "armeabi-v7a" and "arm64-v8a" architectures only, which are 32-bit and 64-bit respectively. Titanium "production" builds do not include "x86" by default... unless you've modified your "tiapp.xml" to include it. Check your "tiapp.xml" file. Do you have the following
<abi/>
element defined? If so, the "x86" part is the cause of the issue. My recommendation is to completely *+remove+* the<abi/>
element from your "tiapp.xml" and let Titanium do the default handling mentioned above.Hi Joshua My APK does not include the x86 Library and my tiapp.xml does not include the
When you unzip your APK file, check that you have the folders within it:
./lib/arm64-v8a
./lib/armeabi-v7a
If you have any other folders under "lib" such as "x86", then that's the cause of the problem. Note that you can easily unzip your APK file by changing its extension to .zip and then double clicking it. An APK is really just a zip file.My lib folder looks exactly like that, no other subfolders.
And do both folders contain the same files?
Yes both contains the same files... I attached an image from Android APK Analyser !PastedGraphic-1.png|thumbnail! Is there any other information I can provide?
I'm getting a little desperate here... Can anyone verify that Appcelerator Studio can upload apps to Google play after Google upped their requirements in August?
Yes, I've managed to upload an app since the requirements change. Dropped the abi tag and it worked. Unfortunately, I have one user who uses an x86 machine and the app crashes on launch for him if I don't specify the abi. So now I've to build a separate non-Play store version for him every time I update...
Sorry about the late response. We built an APK with Titanium 8.2.0 and uploaded to Google Play in the past week to re-test it (in case anything has changed on Google's end). It uploaded fine. There was no error. And I know this is working for other Titanium app devs too (the whole community would be in an uproar if there were any 64-bit problems). So, I'm not sure why you're having this problem and no one else is. Your unzipped APK "looks" fine. Would you mind sharing your "tiapp.xml" file?
This is how my tiapp.xml looked like before I removed all modules. I can't upload with or without mu modules.. Hope this helps. If more info is required ... just let me know...
I'm curious if there was any new findings for this issue. This issue has stopped our update of an existing app as well that has always been built to include both 64bit (arm64-v8a) and 32bit (armeabi-v7a) libraries since long ago when that was originally introduced as a requirement in Titanium. From initial researching online, something changed in late August in terms of Google Play's review process and now this error message is shown where it wasn't before. We've tried upgrading Ti SDK to 8.2.0.GA and bumping minimum Android version to API 28 and still get the error message. Inspecting the APK for 64bit libraries using this method https://developer.android.com/distribute/best-practices/develop/64-bit#apk-analyzer does show a copy of each library the app uses in each of the two folders arm64-v8a and armeabi-v7a. Is there a way to force Titanium to ONLY build with 64bit libraries and not include any 32bit at all (mainly to test a theory that it is the 32bit libraries that are causing this error)? The text of the error message in Google Play is {noformat} 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: 11. 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 {noformat}
Ah ha - I think I just figured it out. I noticed the difference between the error message I posted in my comment above and the error message from the original poster and it was the number at the end of the this line: {noformat} The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 11. {noformat} That number I just figured out is referring to an old version of an APK (before we switched to 64bit) that was "retained" for the app even though it wasn't the main APK ... and Google Play's review process was throwing the error for that APK version only. I had no idea that was even a version code number from their clumsily worded error message until I noticed that the original poster's message had a different number. I had thought it was an error code number actually to be used in referencing the error. So, I returned to the app release configuration and "deactivated" that particular APK (version code 11 in this case) for the app and re-ran the "Review" process and now that error message is gone! I hope this helps someone else.
Oh interesting... So, just to be clear, Google Play was complaining about a previously uploaded APK? The APK you are currently uploading is passing fine, right?
Yes - sort of, not just that it was previously "uploaded", but specifically "retained". Google Play has this ability to "retain" older APK files for an app, I guess so that devices that can't use the newer one still have something to download that is compatible. This section on the app release setup {noformat} Android App Bundles and APKs to retain These app bundles and APKs from your previous release will continue to be served in the Google Play Store. {noformat} But something apparently changed with Google's 32bit acceptance, per their timeline referred to on this page https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html so even an older APK "retained" for older use purpose, must now also be 64bit. So once I "disabled" the previously "retained" APK and there was only the most recent APK, the error went away.
Got it. Thanks for the info. I'm glad it's resolved.
[~jquick] To be clear, I am not the original author of the issue, so might want to confirm if my resolution solves it for [~thomas.neerup@eg.dk] as well.
This is Greatest news. Problem Solvej. Thank you...
I had the same today and @John V Pataki solution was exactly what I needed. I had this app on stores for 5 years and a very old APK with the error message, in my case, number 4. Thanks for figuring it out and I hope that other people with the same problem see this message =)