PlayStore- submitting multiple apks

Does anyone here have any experience with utilizing multiple APKs in Google PlayStore?

I would like to provide one version with crosswalk (30 mbs ) and one version without ( 6 mbs ).
One to support older Androids.

The process of doing so has been a nightmare.
Google itself has been giving contradicting information where on one hand it states multiple APKs are supported but we are ‘encouraged’ to use only one.
On the other hand, I have received support information from Google saying that I cannot.
The new ‘Manage Releases’ interface does not seem to let me do it either.

I’m hoping its just a matter of setting the correct min and maxSdkVersion for each APK but so far no configuration I have tried has worked.
Both APKs work - if only one is added to a release but not together.
Any suggestions?

I was curious about this too, would be great to hear someone weigh in on this.

I’m also interested in finding out how to do this.
Its a pretty big difference between a 5mb download (no crosswalk) and 30mb (with crosswalk)

I have not had time to try this myself yet but it may be that any APK targeting 23+ will cause errors in the Manage Releases portion of the PlayStore submission.
Try targeting a lower SDK version.
More feedback from success stories on this would be great.


I got this to work yesterday. I first setup a Beta release in Google Play and this morning I’ve tested downloading it on 2 different devices (Samsung Galaxy s4 and Moto G4 Plus). As hoped, the S4 device received the crosswalk version (28mb) and the Moto G4 Plus gets the non-crosswalk (5mb version).
Please note I only tested 2 devices, so more testing is required but it does seem to behave how I want it.

What I did was:
Crosswalk Release
Only allow API versions 16-19
Set VersionCode to 1, (see notes below about what the versionCode will actually end up being)
Change the below values in config.xml
<widget android-packageName=“” android-versionCode=“1”
Then under
<preference name=“android-minSdkVersion” value=“16” />
_ <preference name=“android-maxSdkVersion” value=“19” />_
_ <preference name=“android-targetSdkVersion” value=“16” />_

Non-Crosswalk Release
Only allow API versions 21-25 (For some reason I had to explicitly set the maxSdk version to 25, so this may need to be altered in future for new releases.
Set versionCode to 30. Note if 2 versions work on the same device, it will choose the greater versionCode, hence I put 30 so it was larger than 12, see note below also.
<widget android-packageName=“” android-versionCode=“30”
Then under
_ <preference name=“android-minSdkVersion” value=“21” />_
_ <preference name=“android-maxSdkVersion” value=“25” />_
_ <preference name=“android-targetSdkVersion” value=“21” />_

Google Play then accepted these 2 releases to covers 4.1 upwards and it seems to work correctly for me.

Please Note as per the URL below: the first crosswalk build, ended up with a versionCode 12 (multiple by 10 and add 2 for ARM) hence me choosing an arbitrary number 30, for the non-crosswalk version.

"Here’s what Cordova CLI 5 (Cordova-Android 4.x) does with the android:versionCode (App Version Code) number when you perform a Crosswalk build:

multiplies your android:versionCode by 10
adds 2 to the android:versionCode for Crosswalk ARM builds
adds 4 to the android:versionCode for Crosswalk x86 builds"

Hope that helps


If that worked - very nice.
I won’t be able to try until next week but this is very much appreciated.
The maxSdkVersion = 25 is weird. But hey…

Good luck to you and your app(s)!

To clarify, if I tried leaving out the "android-maxSdkVersion completely in the config.xml, but when I checked the Android manifest file, it had kept the previously used one in there. e.g 19, and that caused problems, so I next tried putting in a blank maxSdk e.g

But that also did nothing, the old version stayed in the manifest.

I think the best thing would be not to have the maxSdk in there at all for the other build, but I wanted to run the scripts all via ionic build and not stuff around with the platform. Maybe remove/add platofrm android would reset it first, will play around with it when I get some time.

I gave it a go and had no luck.

CrossWalk version:
versionCode: 213 which becomes 2132
minSdkVersion: 16
masSdkVersion: 19
targetSdkVersion: 16

Produced this error in the Beta release:

Did you get this error and if so - how did you get around it?

Now this could be because of an earlier APK I uploaded but there is no way to remove a previous release without changing the package name entirely. Even though there are no devices with it installed. A real bummer in the PlayStore setup.

Sorry I only saw this. No I didn’t get that exact issue but I did see some similar ones.
I think there is a way to actually delete the old APKs, from the APK manager. but its possible this was before the release was actually submitted.
Off memory I had to upload a new one, to be able to delete the old one etc.

For what its worth my app is live and the correct versions are going to the correct people as per the above.
Looks like this:

Thanks for that.
I see some differences - are you in the new ‘Manage Releases’ area of the Google Play Dev Console?
Or in the old APK area?

It could be that I am only in Beta status so far.

I think I will give another go at your settings using a fresh app name.
Thanks again for taking the time to respond!

You’re right, that was in the old APK area.

Below is what my Releases section looks like.
Either way it is working fine for me.

why 16-19 and 21-25… it shouldnt be 16-20 and 21-25?

Off memory, API Level 20 was 4.4W, for Android Wear devices, I can’t remember exactly the details but something along those lines and it wasn’t relevant for us at the time.

yes it is, thanks :slight_smile: