I found this documentation: How do the Mobile SDKs determine the App ID?
It states that for the App ID the value of CFBundleName within the application bundle is taken. If it is empty, CFBundleDisplayName is used.
So the CFBundleDisplayName is a fallback for CFBundleName.
I would like to know the motivation behind this behavior as Apple acts the other way around:
Apple says about CFBundleName: "This name can contain up to 15 characters. The system may display it to users if CFBundleDisplayName isn't set."
For CFBundleDisplayName Apple also says: "Use this key if you want a product name that's longer than CFBundleName."
So here the CFBundleName, which is limited in length, is a fallback for CFBundleDisplayName.
Moreover, following Table 1 "Summary of Core Foundation keys" in Core Foundation Keys, CFBundleDisplayName is required and CFBundleName only recommended, which raises the question, why CFBundleName is the first place to look for the App ID.
Should not the Mobile SDK derive the App ID primarily from CFBundleDisplayName and if it is empty, falling back to CFBundleName?
We have an app, whose name is longer than 15 characters. To be tracked correctly we would have to leave CFBundleName empty to let the SDK fall back to CFBundleDisplayName.