Qual é a diferença entre "nome de exibição do pacote" e "nome do pacote" nas informações do aplicativo de cacau

Respostas:

102

Não acho que nenhuma das outras respostas responda concisamente à pergunta.

  • CFBundleDisplayName- exibido: abaixo do ícone . De acordo com os documentos, deve ser localizado, mas apenas se o aplicativo em si estiver localizado, caso contrário, haverá algum tipo de penalidade (se isso for verdade na realidade, não posso dizer)

  • CFBundleName- exibido: não faço ideia . Os documentos sugerem que ele será usado em listas recomendadas com no máximo 16 caracteres, mas, por exemplo, a lista Configurações → Geral → Uso de aplicativos CFBundleDisplayNamerealmente usa . Até hoje, nunca descobri onde exatamente esse é usado.

Ah, isso é para aplicativos iOS, não pode falar por outros sistemas operacionais.

Jonny
fonte
7
CFBundleDisplayName também é o que é exibido como o título das notificações (na Central de Notificações, na tela de bloqueio, etc.).
Justin Russell
114
como uma resposta "não faço ideia" recebeu uma marca de seleção e um voto positivo?
badweasel 18/09/14
14
O que quero dizer é que ninguém parece saber onde é usado, ninguém ainda respondeu. Se você souber a resposta, sinta-se à vontade para adicioná-la tocando em "Adicionar outra resposta".
Jonny
2
CFBundleDisplayName também é usado no recurso de compartilhamento de arquivos do iTunes. Se deixado preto, o aplicativo não será exibido na lista do iTunes, mesmo que o recurso esteja ativado.
Unom
1
Suponho que CFBundleName é o nome da pasta do aplicativo ou "pacote" onde tudo está armazenado.
Kelin
100

obrigado pela resposta de Wevah. Aqui estão as descrições para as pessoas que confundiram com essas duas constantes.

CFBundleDisplayName

CFBundleDisplayName(String - iOS, Mac OS X) especifica o nome de exibição do pacote. Se você oferecer suporte a nomes localizados para seu pacote configurável, inclua essa chave no arquivo de lista de propriedades de informações e nos arquivos InfoPlist.strings dos subdiretórios de idioma. Se você localizar essa chave, também deverá incluir uma versão localizada da chave CFBundleName.

Se você não pretende localizar seu pacote configurável, não inclua essa chave no arquivo Info.plist. A inclusão dessa chave não afeta a exibição do nome do pacote configurável, mas incorre em uma penalidade de desempenho para procurar versões localizadas dessa chave.

Antes de exibir um nome localizado para o seu pacote configurável, o Finder compara o valor dessa chave com o nome real do seu pacote configurável no sistema de arquivos. Se os dois nomes corresponderem, o Finder continuará exibindo o nome localizado no arquivo InfoPlist.strings apropriado do seu pacote. Se os nomes não corresponderem, o Finder exibirá o nome do sistema de arquivos.

Para obter mais informações sobre nomes para exibição no Mac OS X, consulte Visão geral do sistema de arquivos.


CFBundleName

CFBundleName(String - iOS, Mac OS X) identifica o nome abreviado do pacote. Esse nome deve ter menos de 16 caracteres e ser adequado para exibição na barra de menus e na janela Informações do aplicativo. Você pode incluir essa chave no arquivo InfoPlist.strings de um subdiretório .lproj apropriado para fornecer valores localizados a ela. Se você localizar essa chave, também deverá incluir a chaveCFBundleDisplayName.

xhan
fonte
1
O que é a "barra de menus e a janela Informações do aplicativo" ??? - Isso se refere a algo no Xcode, no simulador ou em um dispositivo iOS? @xhan - alguma ajuda?
Ethan Parker
@BeemerFan está se referindo à barra de menus do OS X. xhan citou documentação da Apple, e se você observar, ele diz que "iOS, Mac OS X”, por isso aplica-se tanto (e alguns dos detalhes são específicos da plataforma, obviamente).
Chris Page
Só para citar a fonte, aqui é a informação sobre CFBundleDisplayName de docs da Apple: developer.apple.com/library/ios/documentation/General/Reference/...
tylermilner
É errado dizer que não inclua essa chave, a menos que planeje a localização. O documento da Apple diz que é necessário incluir essa chave porque a Siri a usa. developer.apple.com/library/archive/documentation/General/…
desafiador
1
Parece que a Apple agora exige CFBundleDisplayName a partir de pelo menos 2019-06-28, ou em algum lugar recentemente. Você recebe uma rejeição binária inválida agora.
Dave Hubbard
29

um gato ocupado

De acordo com a Apple,

Nome de exibição do pacote:

O nome do aplicativo exibido on the iPhone home screenvem da entrada CFBundleDisplayName (ou "Nome de exibição do pacote" como a sequência legível por humanos no Xcode) da entrada Info.plist do aplicativo iOS

Da mesma forma, o nome do aplicativo que você vê no WatchKit app's launch screen e notificationsvem do CFBundleDisplayName do Info.plist do seu aplicativo WatchKit

Nome do pacote:

The Apple Watch app on the iPhone atualmente usa o nome do pacote (não o nome de exibição do pacote) do seu aplicativo iOS, especificado pela entrada CFBundleName (ou "Nome do pacote") do seu Info.plist

Você pode ver outras capturas de tela relacionadas e obter mais informações na página do desenvolvedor da Apple, clicando aqui .

Safa
fonte
19
Não posso deixar de me perguntar: se você se dar ao trabalho de tirar uma captura de tela para mostrar como os valores são usados, não seria melhor fornecer valores diferentes para que eles aparecessem de maneira diferente?
Richard Szalay
15

Da minha experiência:

  • CFBundleDisplayName é usado na grade de aplicativos em dispositivos iOS
  • CFBundleName é usado na lista de aplicativos armazenados na biblioteca do iTunes
wojked
fonte
6
Apenas a Apple para tornar uma coisa simples complexa.
Duck
Parece correto, o Google Hangouts tem um nome de exibição curto e um nome de biblioteca do iTunes parecido com spam, detestávelmente longo.
1
CFBundleName também aparece se você receber uma mensagem de erro ao instalar um aplicativo, como "( CFBundleName ) não pôde ser instalado no momento".
saveknut
10

Somente se Nome de exibição do pacote ( CFBundleDisplayName) não for especificado, o valor de Nome do pacote ( CFBundleName) será usado para ser exibido no ícone do aplicativo.

Observe que CFBundleDisplayNameé localizável e deve ser usado para definir o nome do aplicativo mostrado no menu iOS Springboard e no Mac OS X Applications / Mission Control.

Em resumo, não toque CFBundleNamee deixe seu valor como padrão, ou seja ${PRODUCT_NAME}.

Raptor
fonte
0

Observe que o nome do pacote configurável também é usado como prefixo para o agente do usuário HTTP.

awph
fonte