Updates on Android RC and APK rejections.

adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,034

We still have no information on why some people are having their APKs rejected by the google play store. We hope that the next update will fix this issue. We believe there to be an undocumented (or documented and we missed it) change to how Google is evaluating APKs and have reached out to them to advise us.

I'm gonna use this thread to report updates to the Android RC and take information about people whose APKs are being rejected.

First update is that we are close to a build for testing. As to why this took so long, we had to handle a number of updates throughout this process.

This all started with an update to Chartboost (Chartboost is required usage of an updated SDK).

That required an update of IronSrc (since Chartboost can be mediated by IronSrc).

That required an update of Admob (since the latest IronSrc mediates the latest Admob).

THAT required an update from android-support packages to androidx packages (google utility libraries used by admob).

And all of those updates put us over the dex class limit! A dex is a "dalvik executable". Basically it's what java classes get compiled to to run on an android device. Dex files can only hold a limited number of methods (java functions). All of the ad network updates put us over this limit. If you remember from back when we first implemented IronSrc, we removed support for some mediated networks because of this limit. Because of this, we had to adapt our build to use a technique called multi-dex.

Because we're using the old eclipse/ant build system instead of the more current Android Studio / gradle one, supporting multi-dex becomes a rather difficult operation.

So, today we have finally gotten it all put together and gotten a successful build showing admob banners and admob and ironsrc interstitials and reward ads.

We'll be kicking off a full build tonight and here's where we're landing:

  • Target SDK/API 29
  • Min SDK/API 21
  • IronSrc 6.16.1 with all supported networks.
  • Admob 19.1.0
  • Chartboost 8.0.2
  • Removal of Tapdaq support
  • Upgrade to AndroidX libraries
  • Like the current iOS RC:
    • Updated Freestick, allowing for more controller support.
    • Trimmed Freeimage, so no potential loading of TIFF, EXR, or RAW image files (but this helps trim the executable size)
    • Update tables loader to use libxml2 instead of expat, so we don't have two xml parsing libraries in our executable

Based on all of this, we don't expect the new RC to drop until next week (as we'll also need to update publishing to support toggling the new ad networks).

Thanks for making it through the update and your patience. We want to get this out the door ASAP so you can resume making money off Chartboost and hopefully getting through Google Play's submission process.

Comments

  • weaselpopgames2020weaselpopgames2020 Member, PRO Posts: 8

    The issue with uploading was strange. The Play Store kept giving an "upload failure" warning, not necessarily rejected. But if i would test to upload an older build it would give me "upload successful", then reject apk for same version number. Which i understand. I tried on different browsers, different computers. Always a failure in the upload process itself

  • RedRoboRedRobo Member, PRO Posts: 680

    Thanks for the update @adent42 . Wow! Sounds like a right pain in the backside! Great to know a fix is coming...

  • gingagaminggingagaming FREELANCE GS DEV Member Posts: 1,685

    I have just tried the following to fix the google issue (non of which worked but just feeding back)

    -Removed Admob SDK

    -Updated Android Studio

    -Removed Google IAP

    This left a bare build and still rejected at upload. I tried this because your post states "Some people" are having their APKS rejected. So I assumed it was one of these but after removing them and updating Android SDK the problem persists. So please can you confirm its only "some people" and not "everyone" @adent42 because I was under the impression it is broken for EVERYONE and breaks the software as we can't publish to the Playstore. Please can you confirm if anyone has managed to publish to the Play store since Sunday eve. There is a massive difference for urgency between some people and everyone!

  • pinkio75pinkio75 Member, PRO Posts: 1,212
    edited May 2020

    Hi yes i'm in the same situation and i've make a lot of test similar to ginga and think that the Apk build from GS are broken for unkwon reason we are unable to upload it in Google Play...

    Honestly i think that this issue reported by me since Sunday afflict all GS user.

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,034

    @gingagaming my response will sound a bit pedantic but it's more to explain my thinking and not to sound defensive.

    I tend to say things like "some people" because we do have people contacting is and I have no idea if anyone out there is successfully getting their projects submitted. That being said, I would guess that most if not all uploads are failing.

    The only thing I can think of is either the fixes we're making now (building against API 29 with the most current libraries) or something to do with a change in acceptable app signatures?

    We've reacted out to Google and haven't heard back yet. As such, the only thing we can do is continue down our development path and continue to test.

    That said, we are about to begin testing the new build (I build it overnight and I'm prepping it for deploy to our QA environment right now).

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,034

    OKAY! So I was able to get a successful upload. I'm not 100% sure this is the thing but here's the idea:

    GameSalad uses jarsigner to sign apks. This was how you signed apps for older versions of android (API level 17 and below).

    Android came out with a newer tool that we never updated to: apksigner.

    This means that you don't have to wait for the latest RC if you don't care about ad networks (or aren't using Chartboost).

    Steps:

    Download the apk with the Download button on publishing.

    From the command line do the following:

    Zip align:

    ~/Library/Android/sdk/build-tools/28.0.3/zipalign -v 4 <downloaded apk> <downloaded apk>_zipaligned.apk

    Sign:

    ~/Library/Android/sdk/build-tools/28.0.3/apksigner sign --ks <your keystore file> --in <downloaded apk>_zipaligned.apk --out <whateveryouwantotnameyourapk>.apk

    That final APK is what you upload to Google Play.


    ~/Library/Android/sdk/build-tools/28.0.3/ is where Android Studio installs the build tools (I think. At least that's where it is for me). You may need to adjust the 28.0.3 if you downloaded a different API level SDK, like 29.0.3 or something.


    I got it to successfully upload once, let us know how this works for you!

  • pinkio75pinkio75 Member, PRO Posts: 1,212
    edited May 2020

    ok i just created the zipaligned .apk but when i try to sign the .apk i've this error:

    "Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool : Unsupported major.minor version 52.0"

    :(

  • pinkio75pinkio75 Member, PRO Posts: 1,212
    edited May 2020

    Ok solved! i just update java; download the build-tools 28.0.3 and after i signed and uploaded my App in Google Play! and this .Apk work fine!

    Thank You @ade

  • weaselpopgames2020weaselpopgames2020 Member, PRO Posts: 8

    Thanks for the update! @adent42 I do have some questions from above - " This means that you don't have to wait for the latest RC if you don't care about ad networks (or aren't using Chartboost) "

    Does this mean not to publish with ad networks? Or no ads will display? I'm just unclear about it

    and thank you @pinkio75 for all of your communication - Are you using ads with your new APK?

  • weaselpopgames2020weaselpopgames2020 Member, PRO Posts: 8

    Ok thank you. I use Admob reward and interstitial, so hopefully i can try it out later this evening

  • ah4000ah4000 Member, PRO Posts: 15

    Is Gamesalad going to update jarsigner to apksigner or do we have to use android studio? i tried updating build tools in the gamesalad apk signer and still rejected from amazon and google play... Thanks

  • 8BitAvrin8BitAvrin Member, PRO Posts: 368

    Hey I'm getting "command not found" when I run that command line in terminal with my apk and I have 28.0.3 downloaded. I was able to upload apks with 21 min sdk fine prior to this zip align requirement that Google Play has now.

    Will these new zip align & signing requirements be interwoven with the publishing process with the new RC?

    WebsiteTwitter ∞ My apps are available on: Apple iOS App StoreGoogle Play App StoreAmazon App Store

  • pinkio75pinkio75 Member, PRO Posts: 1,212
    edited May 2020

    Obviously you need to are inside the folder were are located the "command tools" so in the terminal write CD to change directory and go inside the right directory but if the error persist try to put: "./" before digit command, for example:

    ./zipalign -v 4 myapp.apk myapp_zipaligned.apk

    ./apksigner sign --ks yourkeystore.keystore --in myapp_zipaligned.apk --out myapp.apk

    I've put in the same directory all files, keystore and unsigned apk.

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,034

    yah, the commands have slightly different command line parameters, so i will need to make tool updates

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,034

    also zip align was always a requirement, we do that for you. it’s just that apksigner does things a little differently than jarsigner

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,034

    While this doesn't fix the apksigner issue, the new RC is out. I'm going to sink this thread and put up a new thread specifically with command line signing instructions, at least until we can fix the signing flow on creator.

Sign In or Register to comment.