I would like to know Launch Services determines which version of my
application to run, if there are multiple version on the disk. From
what I can tell, Launch Services uses CFBundleVersion to do this.
However, CFBundleVersion, is described here:
It states the format is "nn.n.nxnnn" where the second and third
digits must be a single numeric digit, i.e. 0-9. After reading
Technote TN1132 , I assume this is due to the BCD usage within the
old NumVersion struct. However, does this restriction still apply
today with Launch Services? Can I really not have a "1.0.15" version?
From some investigation, it seems Launch Services does not strictly
interpret CFBundleVersion as a NumVersion struct. In fact, some of
Apple's own apps violate the "nn.n.nxnnn" format, such as Mail.app,
which has an CFBundleVersion of "746.2".
So I guess my questions boil down to: How does Launch Services
interpret CFBundleVersion, and how should I use it in my app? Should
I just use an increasing floating point number like Mail.app? Or
should I follow the TN1132 versioning system, assuming the BCD
restrictions no longer apply? Or will either work, so long as I am
consistent between versions?
Do not post admin requests to the list. They will be ignored.
Carbon-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden