<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Deriving App ID from CFBundleName and CFBundleDisplayName in Adobe Experience Cloud Mobile Questions</title>
    <link>https://experienceleaguecommunities.adobe.com/t5/adobe-experience-cloud-mobile/deriving-app-id-from-cfbundlename-and-cfbundledisplayname/m-p/306687#M717</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found this documentation: &lt;A href="https://helpx.adobe.com/analytics/kb/how-does-the-mobile-sdks-determine-the-app-id-.html" title="https://helpx.adobe.com/analytics/kb/how-does-the-mobile-sdks-determine-the-app-id-.html"&gt;How do the Mobile SDKs determine the App ID?&lt;/A&gt;&lt;/P&gt;&lt;P&gt;It states that for the App ID the value of CFBundleName within the application bundle is taken. If it is empty, CFBundleDisplayName is used.&lt;/P&gt;&lt;P&gt;So the CFBundleDisplayName is a fallback for CFBundleName.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to know the motivation behind this behavior as Apple acts the other way around:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apple says about CFBundleName: "This name can contain up to 15 characters. The system may display it to users if CFBundleDisplayName isn't set."&lt;/P&gt;&lt;P&gt;( &lt;A href="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlename" title="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlename"&gt;CFBundleName - Information Property List | Apple Developer Documentation&lt;/A&gt;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For CFBundleDisplayName Apple also says: "Use this key if you want a product name that's longer than CFBundleName."&lt;/P&gt;&lt;P&gt;( &lt;A href="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundledisplayname" title="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundledisplayname"&gt;CFBundleDisplayName - Information Property List | Apple Developer Documentation&lt;/A&gt;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So here the CFBundleName, which is limited in length, is a fallback for CFBundleDisplayName.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Moreover, following Table 1 "Summary of Core Foundation keys" in &lt;A href="https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-110725" title="https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-110725"&gt;Core Foundation Keys&lt;/A&gt;, CFBundleDisplayName is required and CFBundleName only recommended, which raises the question, why CFBundleName is the first place to look for the App ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Should not the Mobile SDK derive the App ID primarily from CFBundleDisplayName and if it is empty, falling back to CFBundleName?&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Jun 2019 16:39:19 GMT</pubDate>
    <dc:creator>vendig</dc:creator>
    <dc:date>2019-06-25T16:39:19Z</dc:date>
    <item>
      <title>Deriving App ID from CFBundleName and CFBundleDisplayName</title>
      <link>https://experienceleaguecommunities.adobe.com/t5/adobe-experience-cloud-mobile/deriving-app-id-from-cfbundlename-and-cfbundledisplayname/m-p/306687#M717</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found this documentation: &lt;A href="https://helpx.adobe.com/analytics/kb/how-does-the-mobile-sdks-determine-the-app-id-.html" title="https://helpx.adobe.com/analytics/kb/how-does-the-mobile-sdks-determine-the-app-id-.html"&gt;How do the Mobile SDKs determine the App ID?&lt;/A&gt;&lt;/P&gt;&lt;P&gt;It states that for the App ID the value of CFBundleName within the application bundle is taken. If it is empty, CFBundleDisplayName is used.&lt;/P&gt;&lt;P&gt;So the CFBundleDisplayName is a fallback for CFBundleName.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like to know the motivation behind this behavior as Apple acts the other way around:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apple says about CFBundleName: "This name can contain up to 15 characters. The system may display it to users if CFBundleDisplayName isn't set."&lt;/P&gt;&lt;P&gt;( &lt;A href="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlename" title="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundlename"&gt;CFBundleName - Information Property List | Apple Developer Documentation&lt;/A&gt;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For CFBundleDisplayName Apple also says: "Use this key if you want a product name that's longer than CFBundleName."&lt;/P&gt;&lt;P&gt;( &lt;A href="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundledisplayname" title="https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundledisplayname"&gt;CFBundleDisplayName - Information Property List | Apple Developer Documentation&lt;/A&gt;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So here the CFBundleName, which is limited in length, is a fallback for CFBundleDisplayName.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Moreover, following Table 1 "Summary of Core Foundation keys" in &lt;A href="https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-110725" title="https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-110725"&gt;Core Foundation Keys&lt;/A&gt;, CFBundleDisplayName is required and CFBundleName only recommended, which raises the question, why CFBundleName is the first place to look for the App ID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Should not the Mobile SDK derive the App ID primarily from CFBundleDisplayName and if it is empty, falling back to CFBundleName?&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Jun 2019 16:39:19 GMT</pubDate>
      <guid>https://experienceleaguecommunities.adobe.com/t5/adobe-experience-cloud-mobile/deriving-app-id-from-cfbundlename-and-cfbundledisplayname/m-p/306687#M717</guid>
      <dc:creator>vendig</dc:creator>
      <dc:date>2019-06-25T16:39:19Z</dc:date>
    </item>
    <item>
      <title>Re: Deriving App ID from CFBundleName and CFBundleDisplayName</title>
      <link>https://experienceleaguecommunities.adobe.com/t5/adobe-experience-cloud-mobile/deriving-app-id-from-cfbundlename-and-cfbundledisplayname/m-p/306688#M718</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey &lt;A href="https://experienceleaguecommunities.adobe.com/people/vendig"&gt;vendig&lt;/A&gt;​,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't disagree with you, but it is something we couldn't change as it will break all the other customer's reports.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jiabin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Jun 2019 19:18:35 GMT</pubDate>
      <guid>https://experienceleaguecommunities.adobe.com/t5/adobe-experience-cloud-mobile/deriving-app-id-from-cfbundlename-and-cfbundledisplayname/m-p/306688#M718</guid>
      <dc:creator>shalehaha</dc:creator>
      <dc:date>2019-06-25T19:18:35Z</dc:date>
    </item>
  </channel>
</rss>

