How to publish an ionic app with crosswalk with multiple apk


#1

Hi Guys, i successfully publish the ARM version of my app with ionic + crosswalk (https://play.google.com/store/apps/details?id=it.infofactory.appudine).
But in the developer console of Google Play i noticed that some devices can’t start the app.

I finally figured out that those devices have the x86 architecture and obviously they can’t run crosswalk compiled for ARM.

I know that i can compile one APK with both architectures, but the size of the package is around 60MB and this is unacceptable for me.

I read also in the store can exists multiple apks but i really don’t know how to say: “This package is ONLY for ARM” and/or “This package is ONLY for x86”.

Someone have already find a solution ?

PS: I have cookies!


#2

Read here:

http://developer.android.com/google/play/publishing/multiple-apks.html
Really easy, I’m using two different apk’s with no problem.


#3

Thank you @stivek, but i read that the apk must have a different code version number and different API Level target. There are for example devices with API Level 22 both x86 and ARM. At this point i’m afraid that i’m missing something…


#4

Well I don’t change the API level, either the code version …
I just changed to advanced mode, first I uploaded the armv7 apk, then the x86 apk …

I testes with an x86 device and google play gave me the x86 .apk I’ve uploaded, and with arm devices the armv7 apk…


#5

Thank you very much for the hints!

There are some things to take care of, for example the versionCode is true that can be the same but when you upload the APK google play adds a number at the end of versionCode for avoid conflicts, also you must know that the armeabi-v7 can be download by all devices, so when you have to submit another version of your app is better to first upload the armeabi-v7 and after the x86 version because x86 devices can run both and google play warns you that those devices always download the apk with highest versionCode. So you if you upload x86 for last you are sure that versionCode is the highest and the apk will be available only x86 devices.

PS: I spend a day on this only because our client have a damned asus, otherwise i would ignore this mess…


#6

How do you manage those two apks, if you were to work without Google Play. How do you manage these apks from your company’s servers. Giving links for both processors wouldn’t be user friendly. What do you suggest?


#7

Uhm, i never published an app outside Google Play :slight_smile:
Anyway maybe you can control the browser user agent and serve the correct APK. x86 devices are very few (for now) and i think is trivial to filter only them.


#8

When using a crosswalk in ionic, i should upload two APK to Store ??

armv7 and x86 ??


#9

Hi @nururddin, if you want support also x86 devices yes.
You will see this kind of situation on Google Play:


#10

thanks @ussliberty
but what meaning x86 devices?


#11

and I have this message when uploading x86
"Some devices are eligible to run multiple APKs. In such a scenario, the device will receive the APK with the higher version code."


#12

In poor words x86 phones have INTEL CPUs, when the major part of mobile world have ARM CPUs.


#13

Now you have two APKs active on the store, so Google Play serve the correct APK in base of the type of your device.

So, x86 devices can run both ARM APK and x86 APK, but in this case Google Play will let you download the last APK you have uploaded.


#15

I am trying to do the same (using Crosswalk 1.7.2). I upload and publish the armv7 apk first on my beta channel. However after I upload the x86 apk file to beta, the confirmation dialog says that the armv7 will be archived, so I cancelled the operation. Is that expected behavior?