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.
I don't disagree with you, but it is something we couldn't change as it will break all the other customer's reports.
In my opinion, it'd better give CFBundleName a meaningful string and continue using it. And If you need to rename it, we'd suggest using classifications within the analytics ecosystem to turn the values into whatever you prefer.