“You uploaded an APK with invalid or missing signing information for some of its files. You need to create a valid signed APK”
while trying to publish your Adobe Air Android app to Google Play?
It’s due to a bug in Air 3.6 (and 3.7 for me). For future reference, you can find out what the error in the signing of an app are by using a tool called jarsigner. This exists in your JDK.
On windows it’s in your JDK path/bin folder. Just open up command prompt/terminal and run:
jarsigner -verify "[PATH TO YOUR APK]"
Here is the error I was getting
jarsigner: java.lang.SecurityException: SHA1 digest error for res/drawable-xhdpi
Here’s how I fixed it. I opened up the APK in 7zip (remember, APK is collection of files zipped together. You can actually open it up) and navigated to that res/rawable-xhdpi folder. What do you know… looks like there are TWO icon.pngs. It’s a bug in Adobe’s latest Air which packages the APK incorrectly by creating duplicated icon.png files. Probably will be fixed in later versions.
If you want to avoid upgrading your Air SDK, all you need to do is delete one of those two icon.png files from the zip file.
Command line way to do it (will delete both):
zip -d [YOUR APK.APK] res/drawable-xhdpi/icon.png
Now, if you tried uploading this APK you might get an error about the APK not being zipaligned. Due to us deleting files the APK is no longer zip aligned. Which means we have to re align the file.
Navigate to your Android Developer Tools (ADT) folder. Under the SDK’s /tools you’ll see that zipalign. You’ll need to do
zipalign -f -v -c 4 “Your APK” “Your APK 2”
Reupload the new APK (remember if you don’t put an absolute path it’ll be in the same directory as where zipalign is) and it should be accepted.
Oh the joys of Adobe Air for mobile development.