Quelle est la différence entre "nom d'affichage du bundle" et "nom du bundle" dans la liste d'informations de l'application Cocoa

Réponses:

102

Je ne pense pas qu'aucune des autres réponses ne réponde de manière concise à la question.

  • CFBundleDisplayName- affiché: sous l'icône . Selon la documentation, devrait être localisé, mais seulement si l'application elle-même est localisée, sinon il y aura une sorte de pénalité (si cela est vrai en réalité, je ne peux pas le dire)

  • CFBundleName- affiché: je n'ai aucune idée . Les documents suggèrent qu'il sera utilisé dans des listes donc recommandées au maximum 16 caractères, mais par exemple, la liste Paramètres → Général → Utilisation des applications utilise CFBundleDisplayNamevraiment. À ce jour, je n'ai jamais compris où exactement celui-ci est utilisé.

Oh, c'est pour les applications iOS, je ne peux pas parler pour les autres systèmes d'exploitation.

Jonny
la source
7
CFBundleDisplayName est également ce qui s'affiche comme titre des notifications (dans le Centre de notifications, sur l'écran de verrouillage, etc.).
Justin Russell
114
Comment une réponse «Je n'ai aucune idée» a-t-elle obtenu une coche et des votes?
badweasel
14
Ce que je veux dire, c'est que personne ne semble savoir où il est utilisé, personne n'a encore répondu. Si vous connaissez la réponse, n'hésitez pas à l'ajouter en appuyant sur "Ajouter une autre réponse".
Jonny
2
CFBundleDisplayName est également utilisé dans la fonction de partage de fichiers iTunes. Si elle est laissée en noir, l'application ne s'affichera pas dans la liste iTunes même si la fonction est activée.
Unom
1
Je suppose que CFBundleName est le nom du dossier d'application ou "bundle" où tout est stocké.
kelin
100

merci pour la réponse de Wevah. voici les descriptions des personnes qui ont confondu ces deux constantes.

CFBundleDisplayName

CFBundleDisplayName(String - iOS, Mac OS X) spécifie le nom d'affichage du bundle. Si vous prenez en charge les noms localisés pour votre bundle, incluez cette clé à la fois dans votre fichier de liste de propriétés d'informations et dans les fichiers InfoPlist.strings de vos sous-répertoires de langue. Si vous localisez cette clé, vous devez également inclure une version localisée de la clé CFBundleName.

Si vous n'avez pas l'intention de localiser votre bundle, n'incluez pas cette clé dans votre fichier Info.plist. L'inclusion de cette clé n'affecte pas l'affichage du nom du bundle, mais entraîne une baisse des performances pour rechercher des versions localisées de cette clé.

Avant d'afficher un nom localisé pour votre bundle, le Finder compare la valeur de cette clé au nom réel de votre bundle dans le système de fichiers. Si les deux noms correspondent, le Finder affiche le nom localisé à partir du fichier InfoPlist.strings approprié de votre bundle. Si les noms ne correspondent pas, le Finder affiche le nom du système de fichiers.

Pour plus d'informations sur les noms d'affichage sous Mac OS X, consultez Présentation du système de fichiers.


CFBundleName

CFBundleName(Chaîne - iOS, Mac OS X) identifie le nom court du bundle. Ce nom doit comporter moins de 16 caractères et pouvoir être affiché dans la barre de menus et la fenêtre Info de l'application. Vous pouvez inclure cette clé dans le fichier InfoPlist.strings d'un sous-répertoire .lproj approprié pour lui fournir des valeurs localisées. Si vous localisez cette clé, vous devez également inclure la cléCFBundleDisplayName.

xhan
la source
1
Qu'est-ce que la "barre de menu et la fenêtre Info de l'application" ??? - Cela fait-il référence à quelque chose dans Xcode, le simulateur ou un appareil iOS? @xhan - une aide?
Ethan Parker
@BeemerFan fait référence à la barre de menus OS X. xhan a cité la documentation d'Apple, et si vous le remarquez, elle dit "iOS, Mac OS X", donc cela s'applique aux deux (et certains détails sont évidemment spécifiques à la plate-forme).
Chris Page
Juste pour citer la source, voici les informations sur CFBundleDisplayName de la documentation d'Apple: developer.apple.com/library/ios/documentation/General/Reference/…
tylermilner
Il est faux de dire que n'incluez pas cette clé sauf si vous prévoyez de localiser. Le document Apple indique que vous devez inclure cette clé car Siri l'utilise. developer.apple.com/library/archive/documentation/General/…
défiant le
1
Il semble qu'Apple ait désormais besoin de CFBundleDisplayName depuis au moins 2019-06-28, ou quelque part récemment. Vous obtenez un rejet binaire invalide maintenant.
Dave Hubbard
29

un chat occupé

Selon Apple,

Nom d'affichage du bundle:

Le nom de l'application affiché on the iPhone home screenprovient de l'entrée CFBundleDisplayName (ou "Nom d'affichage du bundle" en tant que chaîne lisible par l'homme dans Xcode) de l'Info.plist de votre application iOS.

De même, le nom de l'application que vous voyez dans votre WatchKit app's launch screen et notificationsprovient du CFBundleDisplayName de l'Info.plist de votre application WatchKit.

Nom du lot:

The Apple Watch app on the iPhone utilise actuellement le nom du bundle (et non le nom d'affichage du bundle) de votre application iOS, qui est spécifié par l'entrée CFBundleName (ou "Bundle name") de son Info.plist

Vous pouvez voir d'autres captures d'écran associées et accéder à plus d'informations sur la page des développeurs Apple en cliquant ici .

Safa
la source
19
Je ne peux pas m'empêcher de me demander: si vous allez vous donner la peine de prendre une capture d'écran pour montrer comment les valeurs sont utilisées, n'aurait-il pas été préférable de leur donner des valeurs différentes pour qu'elles apparaissent différemment?
Richard Szalay
15

Selon mon expérience:

  • CFBundleDisplayName est utilisé dans la grille des applications sur les appareils iOS
  • CFBundleName est utilisé dans la liste des applications stockées dans la bibliothèque iTunes
travaillé
la source
6
Juste Apple pour rendre une chose simple complexe.
Canard
Cela semble juste, Google Hangouts a un nom d'affichage court et un nom de bibliothèque iTunes odieusement long, semblable à un spam.
1
CFBundleName apparaît également si vous recevez un message d'erreur lors de l'installation d'une application, tel que "( CFBundleName ) n'a pas pu être installé pour le moment".
saveknut
10

Uniquement si le nom d'affichage du bundle ( CFBundleDisplayName) n'est pas spécifié, la valeur du nom du bundle ( CFBundleName) sera utilisée pour s'afficher sous l'icône de l'application.

Veuillez noter qu'il CFBundleDisplayNameest localisable et qu'il doit être utilisé pour définir le nom de l'application affiché dans le menu iOS Springboard et les applications Mac OS X / Mission Control.

En bref, ne touchez pas CFBundleNameet laissez sa valeur par défaut, c'est-à-dire ${PRODUCT_NAME}.

Raptor
la source
0

Notez que le nom du bundle est également utilisé comme préfixe pour l'agent utilisateur HTTP.

awph
la source