[avatar]
Official company blog of Felt Tip Inc.
felttip.comMailing list

Developer Documentation Unclear On CFBundleIdentifier Uniqueness

Developer documentation is unclear as to the uniqueness of the CFBundleIdentifier when used both on and outside the Mac App Store.

The Bundle Identifier, or CFBundleIdentifier, has little developer documentation available as to what is meant by “unique.” For example, if you have a trial version of your app and another version in the App Store that is functionally identical, should it use the same bundle ID or a different one? If you release a major new version, and you want users to pay for it, should the bundle ID be the same or different? If you sell licenses for your app both on and outside the Mac App Store, should the bundle IDs for the two versions be the same or different?

The “Information Property List Key Reference” document implies that the same CFBundleIdentifier should be used for different versions, which makes sense since documents should open with the latest version of an app instead of needing to be re-associated with every new version. The documentation says, “This key does not uniquely identify a specific bundle in the file system, as multiple copies of an application with the same or different version may exist.”

The “Submitting to the Mac App Store” document doesn’t say anything about the uniqueness outside the bundle: “Ensure that every bundle identifier is unique within your application bundle.”

Technical Q&A QA1373 says “This key is a unique identifier for your application on the system. It has a String value, recommended to resemble a Java package, such as com.mycompany.MyApp.”

If you want to create a new version of your app in the Mac App Store and charge for it, you would need a new SKU in the App Store, which also means a new CFBundleIdentifier. But this will break existing document associations and other aspects of the system because it’s considered a new app.

There needs to be a clear policy on CFBundleIdentifier uniqueness that takes into account the ramifications of its use to identify apps in the App Store.

Submitted to Apple’s bug reporter Radar today. Radar 8838565.

  1. felttip posted this
« Previous Post Next Post »
Archive