Skip to main content
Inspiring
November 2, 2014
Answered

Can I update my Android AIR app with a non-AIR app?

  • November 2, 2014
  • 1 reply
  • 1309 views

A few years ago I published an Android app using Adobe AIR. Now I've created a new version of the app with a different technology (HaxeFlixel / OpenFL) which uses native C++ code.

The certificate I used for the AIR version is in "p12" format, and it seems that I need to use "jks" format. I tried using a p12 to jks converter I found online, which seemed to work, but when I try to submit the app I get an error saying that the certificates don't match.

Any suggestions on how I can update the app with a non-AIR app? Is it possible? Thanks in advance.

This topic has been closed for replies.
Correct answer VascoF

I'm still having trouble with this, I asked in the OpenFL forums but nobody responded.

I converted the p12 file to JKS from the site you suggested (I think I've actually tried it before), and the file was created successfully, the apk compiled fine with the JKS file, but when I try to update the app for Google Play it says "Upload failed

You uploaded an APK that is signed with a different certificate to your previous APKs. You must use the same certificate. Your existing APKs are signed with the certificate(s) with fingerprint(s):"

When I try to sign with the original p12 file, I get the error "Invalid keystore format"

I noticed that for the AIR app, I also had a file called SelfSigned.pfx, which I think was used to create the p12 certificate? Can this have something to do with the problem? I even tried using this pfx file to sign the app, which didn't work either.


Just for the record, I was able to solve the problem by removing the certificate from the apk, and signing it again with the jks certificate, with jarsigner. I basically followed this: http://stackoverflow.com/questions/3267216/can-i-re-sign-an-apk-with-a-different-certificate-than-what-it-came-with So the problem had something to do with how the app was signed, not the certificate.

1 reply

Colin Holgate
Inspiring
November 2, 2014

The issue may be the app id. If your non-AIR version is com.company.appname then the AIR version is most likely air.com.company.appname. which therefore doesn't match. You could try changing your new version's app id to match the AIR version.

VascoFAuthor
Inspiring
November 2, 2014

I don't think that's the problem, since I put the same package name in the xml, but I'll double-check.

Colin Holgate
Inspiring
November 2, 2014

The package name in the XML shows without the "air" part. If you're doing a non-AIR app and its ID is the same as the AIR app XML value, then the final ID is different.

What is the Google Play URL for the exiting version?