I have an app that is right on top of its publication date (moving from Beta to Release Candidate). All is well, but I just upgraded Android Studio from rc6 to rc7. The app (a game) is developed with Unity 2018.1, and all seemed to be well; but on uploading the apk to the Play Store, I suddenly get the message:
"You uploaded an APK with an invalid signature (learn more about signing). Error from apksigner: ERROR: JAR_SIG_NO_MANIFEST: Missing META-INF/MANIFEST.MF"
I am not an experienced Android developer (just got into it maybe four months ago), so I'm not entirely sure what this is about. I'm using the same keystore as ever, and Unity compiles the APK without complaint. (This is literally the rc1 compilation.)
Can anyone give me an idea what may have changed? What happened to my signature/manifest?
(Addendum:)
As requested, a screenshot of my Player Settings, from Unity. Note that I have verified that the package name is perfectly accurate, preloaded assets is an empty list, and no changes have been made to my keystore. Additionally, we attempted to upload the APK to a new store entry, in case that was the situation, and we got the exact same error.

At the moment, we are attempting to upgrade Android Studio a little further, and download additional Android APIs (Everything from 4.1 to 8.1, not just some of it). In spite of the traditional meaning of the term "API", it occurs to me that it may be related to a hardware dependency in this case, and that may be mangling the manifest files. If it solves anything, I'll be certain to answer this myself.
Solved it!
It seems that, for some reason, updating the SDK left me without certain API levels. This was likely resulting in a compilable, but rather confused, APK; Google Play was looking for manifest references for chunks that were nonexistent.
To illustrate, I had my app set to run on 4.1 (API 16) through 8.1 (API 27). I only had API 27 on my system. Why this didn't result in at least a warning from the compiler, I honestly don't know; but after going to the android SDK's bin directory and running:
sdkmanager "platforms;android-[API number]"
For each API that I was missing, and then restarting (what with Windows and all...), it compiled an adequate APK which was accepted on the store.
The whole ordeal was actually pretty exhausting, and the solution might have been obvious were I comfortably working closer to bare metal. Moral? Don't update the SDK mid-project until you're sure you've got a few expendable days.
Hopefully this solution will help someone else with the same problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With