Qual é a diferença entre “nome de exibição do pacote” e “nome do pacote” no plist de informações do aplicativo cacau

Aqui está uma boa pergunta:

Nome do pacote, nome do executável, nome do produto … mais alguma coisa?

mas me pergunto sobre a diferença entre “nome de exibição do pacote” e “nome do pacote” no plist de informações do aplicativo cacau.

Eu não acho que nenhuma das outras respostas concisamente responda a pergunta.

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

  • CFBundleName – exibido: não tenho ideia . O Docs sugere que ele será usado em listas com o máximo de 16 caracteres recomendados, mas, por exemplo, a opção Configurações → Geral → Uso de aplicativos usa CFBundleDisplayName realmente. Até hoje eu nunca descobri onde exatamente este é usado.

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

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

CFBundleDisplayName

CFBundleDisplayName (String – iOS, Mac OS X) especifica o nome de exibição do pacote. Se você suportar nomes localizados para o seu pacote, inclua essa chave em seu arquivo de lista de propriedades de informações e nos arquivos InfoPlist.strings de seus subdiretórios de idioma. Se você localizar essa chave, inclua também uma versão localizada da chave CFBundleName.

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

Antes de exibir um nome localizado para o seu pacote, o Finder compara o valor dessa chave com o nome real do seu pacote no sistema de arquivos. Se os dois nomes corresponderem, o Localizador continuará exibindo o nome localizado do 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 de 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 include essa chave no arquivo InfoPlist.strings de um subdiretório .lproj apropriado para fornecer valores localizados para ela. Se você localizar essa chave, inclua também a chave CFBundleDisplayName.

um gato ocupado

De acordo com a Apple,

Nome de exibição do pacote:

O nome do aplicativo exibido on the iPhone home screen vem da input CFBundleDisplayName (ou “nome de exibição do pacote configurável” como a string legível por humanos no Xcode) do aplicativo Info.plist do aplicativo iOS

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

Nome do pacote:

The Apple Watch app on the iPhone usa atualmente o nome do bundle (não o nome de exibição do bundle) do seu aplicativo para iOS, que é especificado pela input CFBundleName (ou “Bundle name”) de seu Info.plist

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

Da minha experiência:

  • CFBundleDisplayName é usado na grade de aplicativos em dispositivos iOS
  • CFBundleName é usado na lista de aplicativos armazenados na biblioteca do iTunes

Somente se o Nome de Exibição do Bundle ( CFBundleDisplayName ) não for especificado, o valor do Nome do Bundle ( CFBundleName ) será usado para ser exibido no Ícone do Aplicativo.

Por favor, note que CFBundleDisplayName é localizável, e deve ser usado para definir o nome do aplicativo mostrado no menu do Springboard do iOS e Aplicativos do Mac OS X / Controle da Missão.

Resumindo, não toque em CFBundleName e deixe seu valor como padrão, ou seja, ${PRODUCT_NAME} .