Sorry my english isn't very good
This sounds like you might not have a publisherID set, or it's different for your 2.0 application. Is it possible to see both app descriptors and your installation log?
Install logs can be found in these locations:
Mac: the standard system log (/private/var/log/system.log)
Windows XP: C:\Documents and Settings\<username>\Local Settings\Application Data\Adobe\AIR\logs\Install.log
Windows Vista, Windows 7: C:\Users\<username>\AppData\Local\Adobe\AIR\logs\Install.log
I have a similar issue with the upgrade process of my application. I get an error telling that the app is wrong and I have to contact the editeur.
Here is my case :
My app is built with Flex 3.5 SDK on AIR 1.5.3 and ready for certificate migration (from a signed to a self signed certificate).
I installed the new AIR 2 runtime
The SDK available on the official AIR page is still the 1.5 SDK so I installed the AIR 2 RC1 SDK from Adobe Labs.
I built the new version of my application upon the Flex 3.5 / AIR 2 RC1 SDKs and using:
- the <application xmlns="http://ns.adobe.com/air/application/2.0"> descriptor in the application.xml
- the <update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> in the update.xml
I signed it with the self signed certificate used to migrate the previous version.
=> from the current application, the update process starts but I got this error and the app is not updated. So it will by the same for my users on the net.
I supposed it was due to the AIR 2 RC1 SDK used to signed the application although the runtime is on 2.0.2 ?
Can someone confirm this ?
Thanks Chris for your answer,
effectively the Pub ID is blank in the log file :
"[2010-06-11:19:00:05] begin quitting
[2010-06-12:19:09:22] Starting app install of file:///C:/0.3007.air
[2010-06-12:19:09:23] UI SWF load is complete
[2010-06-12:19:09:23] UI initialized
[2010-06-12:19:09:23] beginning UI styling
[2010-06-12:19:09:23] UI styling complete
[2010-06-12:19:09:24] Unpackaging to C:\Documents and Settings\Pierre\Local Settings\Temp\flaDA.tmp
[2010-06-12:19:09:30] unpackaging/validation is complete
[2010-06-12:19:09:30] application is bound to this version of the runtime
[2010-06-12:19:09:30] app id teambooster-acces
[2010-06-12:19:09:30] pub id
[2010-06-12:19:09:30] Application not located
[2010-06-12:19:09:30] Waiting for user confirmation
[2010-06-12:19:09:35] User confirmed action: install
[2010-06-12:19:09:35] creating native installer in: C:\Documents and Settings\Pierre\Local Settings\Temp\flaDB.tmp
[2010-06-12:19:09:41] native installer creation complete
[2010-06-12:19:09:41] Starting install
[2010-06-12:19:09:41] using conversion output in C:\Documents and Settings\Pierre\Local Settings\Temp\flaDB.tmp
[2010-06-12:19:09:41] Destination for installed application is C:\Program Files
[2010-06-12:19:09:41] stateInstalling: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="Unhandled exception Error: App already exists" errorID=5007]
[2010-06-12:19:09:47] starting cleanup of temporary files
[2010-06-12:19:09:51] application installer exiting"
Important maybe : I sign and package my app with the dreamwaver CS4 extension.
I suspect this might be an issue with the Deamweaver CS4 extension. We hope to have an updated extension out shortly. In the mean time, can you try manually editing your descriptor file and packaging with ADT?
If possible, could you provide us with your installer log output when this error occurs?
Here are the logs of the last try.
[2010-06-11:22:04:51] Starting update of c:\program files\sqlite sorcerer\sqlite sorcerer.exe
[2010-06-11:22:04:51] Updating from file:///C:/Users/Arnaud/AppData/Roaming/SQLiteSorcerer/Local%20Store/%23ApplicationUpdate r/update.air
[2010-06-11:22:04:51] Updating to version 1.6
[2010-06-11:22:04:51] UI SWF load is complete
[2010-06-11:22:04:52] UI initialized
[2010-06-11:22:04:52] beginning UI styling
[2010-06-11:22:04:52] UI styling complete
[2010-06-11:22:04:52] Unpackaging to C:\Users\Arnaud\AppData\Local\Temp\fla4442.tmp
[2010-06-11:22:04:52] unpackaging/validation is complete
[2010-06-11:22:04:52] application is bound to this version of the runtime
[2010-06-11:22:04:52] app id SQLiteSorcerer
[2010-06-11:22:04:52] pub id
[2010-06-11:22:04:52] Application located at c:\program files
[2010-06-11:22:04:52] The certificate of the installed app fails to match either the signature or migration signature of the AIR file
[2010-06-11:22:04:54] Re-launching application from c:\program files\sqlite sorcerer\sqlite sorcerer.exe
[2010-06-11:22:04:54] starting cleanup of temporary files
[2010-06-11:22:04:55] application installer exiting
It seems to have a problem with the certificate.
I will retry as soon as the official AIR2 SDK is made available on the AIR page to sign my application using it. But if you have some other advices...
Thanks for the log. It looks like you need to get the pubID from your installed 1.5 application and put that in the <publisherID> tag in the descriptor file for the 2.0 app. For additional background on why this is required please see:
Thanks a lot Chris,
with the PublisherID tag it working well.
I don't use a publisherID any more for a long time, since AIR 1.5.3 + or since I got my official certificate (now expired). I thought it was no more required with AIR 1.5.3... but maybe for signed apps only not self-signed ones. So my last installed app has no publisherID and I think auto-update process chain is broken now...
So I will use the pubId for future updates as my app will now be self-signed.
I read on Adobe somewhere that publisher ID should NOT be used in AIR 1.5! And I tried it anyway and it broke my app. So what is the story for 2.0?
If I understood correctly from now:
- publisherId is not required in the adt command line tool since AIR 1.5. You should get an error if you use it during the packaging operation.
- publisherId is not mandatory and useful in the app descriptor .xml if you sign your app with an official certificate.
- publisherId seems mandatory if you need to migrate your certificate or self-sign your app and want to enjoy smooth auto update and certificate migration.
So I think that my prob was due to the fact that I was not using publisherId any more in the app descriptor, as I had a certificate. I forgot to use my publisherId to migrate my app to a self-signed certificate (as official one has expired)...
Nothing specific to AIR2.
But I have never been very confortable with the migration process and signing requirements since AIR 1.5. Even after lots of reading.
EDIT: Nevermind. I see I need to graph the publisher id from previously installed 1.5 apps.
I am having this same problem. I never used a publisherID and several websites say it is deprecated. How can I get my users to update their apps to my new Adobe AIR 2.0 version? They have to uninstall the old app and reinstall the new one??
These say the publisherId is deprecated:
http://www.adobe.com/support/documentation/en/air/1_5_3/releasenotes_developers.html <-- don't use publisherid\
So what do I do?
You can get a clean update by following these steps (from the docs):
Determine your application's current publisher ID. In an installed application, this is found in the META-INF/AIR/publisherid file.
Add a setting.