AIR generates your publisher ID from the certificate used to sign the AIR app. All of your apps you sign with the same certificate will have the same publisher ID. Just sign any app to see what it is.
If your certificate expires and you get another, your publisher ID may or may not be the same as the original; you'd have to wait and see what happens. In our case, the publisher ID from the new cert is different from the orignal publisher ID. AIR 1.5.3 attempts to resolve app update conflicts due to this problem.
According to the Adobe documentation:
As of AIR 1.5.3 the publisher ID is deprecated and no longer computed based on the code signing certificate.
I'm running a 1.5.3 AIR app, so the above applies to my application. So, it looks like the publisherid is computed at install time if its not done at compile/build time?
If your app. is 1.5.3 app., by default, the publisher ID is null. You can set the publisher ID in application descriptro if you want.
In the document I referenced above, it says:
New applications do not need and should not use a publisher ID.
My application is a new application. I've never deployed on less than AIR 1.5.3. Further on in that same document I see this:
An application published with AIR 1.5.3 can specify a publisher ID string in the application descriptor. You should only specify a publisher ID when publishing updates for applications originally published for versions of AIR prior to 1.5.3.
Perhaps I'm missing some nuance, but these two statements seem to be in conflict with one another.
I'm happy to include an publishId in my application descriptor file (as it would solve all my problems), but I just want to make sure I'm definitely doing the right thing.
If it is a new app., you should not need to set publisher ID in application descriptor.
Setting a publisher ID in application descriptor is mainly for backward compactibility, so that people can develop updates to their apps. published before 1.5.3.
If you set a publisher ID, you will need to set the same publisher ID for all your updates later on.
Tried adding a publisherID attribute in the application descriptor .xml file and I get this error when packaging the app:
error 103: application.publisherID is an unexpected element/attribute
I thought this might be because I'm running the 2.0 beta release of Adobe AIR, but I reverted back to 1.5.3 and I get the same results. I then thought that it might be related to the string I had in the publisherID attribute, so I copied the example from http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff1. html, but I get the same error again. I had added the publisherID entry at the same level as the app id, so I'm pretty sure its in the correct hierarchy.
Anyways, this brings me back to my initial question - how is the publisherid value in the META-INF directory constructed?
Have you set the name space to 1.5.3 or 2.0beta2 if you use 2.0
SDK? The problem is you have the wrong name space. You can't use <publihs
erID> with namespace before 1.5.3.
That is becuase you are not using an AIR 1.5.3 SDK or AIR 2.0 SD
Earlier versions SDK doesn't accept namespace 1.5.3.
You need to set namespace to 1.5.3 or later, and use an AIR SDK 1.5.3 or later.
On second inspection, I was using an old version of the sdk to build the app. Switching to 1.5.3 solves my issue.