Jaka jest różnica między „nazwą wyświetlaną pakietu” a „nazwą pakietu” na liście informacyjnej aplikacji kakao

Odpowiedzi:

102

Nie sądzę, aby żadna z pozostałych odpowiedzi zwięźle odpowiadała na to pytanie.

  • CFBundleDisplayName- wyświetlany: poniżej ikona . Według dokumentów powinno być zlokalizowane, ale tylko wtedy, gdy sama aplikacja jest zlokalizowana, w przeciwnym razie będzie jakaś kara (jeśli to prawda, nie mogę powiedzieć)

  • CFBundleName- wyświetlany: nie mam pojęcia . Dokumenty sugerują, że będzie on używany na listach, więc zaleca się maksymalnie 16 znaków, ale na przykład Ustawienia → Ogólne → Lista użycia aplikacji używa CFBundleDisplayNamenaprawdę. Do tej pory nigdy nie zorientowałem się, gdzie dokładnie ten jest używany.

Och, to jest dla aplikacji na iOS, nie mogę mówić w innych systemach operacyjnych.

Jonny
źródło
7
CFBundleDisplayName jest również tym, co jest wyświetlane jako tytuł powiadomień (w Centrum powiadomień, na ekranie blokady itp.).
Justin Russell
114
w jaki sposób odpowiedź „Nie mam pojęcia” otrzymała znacznik wyboru i wzrosła liczba głosów?
badweasel
14
Chodzi mi o to, że nikt nie wie, gdzie jest używany, nikt jeszcze nie odpowiedział. Jeśli znasz odpowiedź, możesz ją dodać, klikając „Dodaj kolejną odpowiedź”.
Jonny,
2
CFBundleDisplayName jest również używany w funkcji udostępniania plików iTunes. Jeśli pozostawisz czarny, aplikacja nie będzie wyświetlana na liście iTunes, mimo że funkcja jest włączona.
unom
1
Przypuszczam, że CFBundleName to nazwa folderu aplikacji lub „pakietu”, w którym wszystko jest przechowywane.
kelin
100

dzięki za odpowiedź Wevah. oto opisy dla ludzi, którzy mylili te dwie stałe.

CFBundleDisplayName

CFBundleDisplayName(Ciąg - iOS, Mac OS X) określa wyświetlaną nazwę pakietu. Jeśli obsługujesz zlokalizowane nazwy dla swojego pakietu, umieść ten klucz zarówno w pliku listy właściwości informacji, jak iw plikach InfoPlist.strings w podkatalogach języka. Jeśli lokalizujesz ten klucz, należy również dołączyć zlokalizowaną wersję klucza CFBundleName.

Jeśli nie zamierzasz lokalizować pakietu, nie umieszczaj tego klucza w pliku Info.plist. Uwzględnienie tego klucza nie wpływa na wyświetlanie nazwy pakietu, ale powoduje spadek wydajności przy wyszukiwaniu zlokalizowanych wersji tego klucza.

Przed wyświetleniem zlokalizowanej nazwy pakunku Finder porównuje wartość tego klucza z rzeczywistą nazwą pakunku w systemie plików. Jeśli te dwie nazwy są zgodne, Finder przechodzi do wyświetlenia zlokalizowanej nazwy z odpowiedniego pliku InfoPlist.strings pakietu. Jeśli nazwy się nie zgadzają, Finder wyświetla nazwę systemu plików.

Aby uzyskać więcej informacji na temat nazw wyświetlanych w systemie Mac OS X, zobacz Omówienie systemu plików.


CFBundleName

CFBundleName(Ciąg - iOS, Mac OS X) określa krótką nazwę pakietu. Ta nazwa powinna mieć mniej niż 16 znaków i być odpowiednia do wyświetlania na pasku menu i oknie informacyjnym aplikacji. Ten klucz można dołączyć do pliku InfoPlist.strings w odpowiednim podkatalogu .lproj, aby podać zlokalizowane wartości dla niego. Jeśli lokalizujesz ten klucz, powinieneś również dołączyć kluczCFBundleDisplayName.

xhan
źródło
1
Co to jest „pasek menu i okno informacyjne aplikacji” ??? - Czy to odnosi się do czegoś w Xcode, symulatorze lub urządzeniu iOS? @xhan - jakaś pomoc?
Ethan Parker
@BeemerFan odnosi się do paska menu OS X. xhan zacytował dokumentację Apple, a jeśli zauważysz, że mówi „iOS, Mac OS X”, więc to dotyczy zarówno (i niektóre szczegóły są specyficzne dla platformy, oczywiście).
Chris Page
Aby zacytować źródło, oto informacje o CFBundleDisplayName z dokumentacji firmy Apple: developer.apple.com/library/ios/documentation/General/Reference/ ...
tylermilner
Błędem jest powiedzieć, że nie dołączaj tego klucza, chyba że planujesz lokalizację. Dokument Apple mówi, że musisz dołączyć ten klucz, ponieważ używa go Siri. developer.apple.com/library/archive/documentation/General/…
wyzywający
1
Wygląda na to, że Apple wymaga teraz CFBundleDisplayName od co najmniej 2019-06-28 lub gdzieś niedawno. Otrzymujesz teraz nieprawidłowe odrzucenie pliku binarnego.
Dave Hubbard
29

zapracowany kot

Według Apple

Wyświetlana nazwa pakietu:

Wyświetlana nazwa aplikacji on the iPhone home screenpochodzi z wpisu CFBundleDisplayName (lub „Wyświetlana nazwa pakietu” jako czytelny dla człowieka ciąg w Xcode) w pliku Info.plist aplikacji na iOS

Podobnie nazwa aplikacji, którą widzisz w swoim WatchKit app's launch screen i notificationspochodzi z CFBundleDisplayName z Info.plist Twojej aplikacji WatchKit

Nazwa pakietu:

The Apple Watch app on the iPhone obecnie używa nazwy pakietu (nie nazwy wyświetlanej pakietu) Twojej aplikacji na iOS, która jest określona przez wpis CFBundleName (lub „Nazwa pakietu”) w jej Info.plist

Możesz zobaczyć inne powiązane zrzuty ekranu i uzyskać więcej informacji na stronie Apple Developer, klikając tutaj .

Safa
źródło
19
Nie mogę przestać się zastanawiać: jeśli masz zamiar zadać sobie trud zrobienia zrzutu ekranu, aby pokazać, w jaki sposób używane są wartości, czy nie byłoby lepiej nadać im różne wartości, aby wyglądały inaczej?
Richard Szalay
15

Z mojego doświadczenia:

  • CFBundleDisplayName jest używany w siatce aplikacji na urządzeniach z systemem iOS
  • CFBundleName jest używany na liście aplikacji przechowywanych w bibliotece iTunes
wojked
źródło
6
Wystarczy Apple, aby skomplikować prostą rzecz.
Duck
Wydaje się to słuszne, Google Hangouts ma krótką wyświetlaną nazwę i nieznośnie długą nazwę biblioteki iTunes podobną do spamu.
1
CFBundleName pojawia się również, jeśli pojawi się komunikat o błędzie podczas instalowania aplikacji, na przykład „( Nie można w tej chwili zainstalować ( CFBundleName )”.
saveknut
10

Tylko jeśli CFBundleDisplayNamenie określono nazwy wyświetlanej pakietu ( ), wartość nazwy pakietu ( CFBundleName) zostanie użyta do wyświetlenia pod ikoną aplikacji.

Należy pamiętać, że CFBundleDisplayNamemożna go zlokalizować i należy go użyć do ustawienia nazwy aplikacji wyświetlanej w menu Springboard iOS oraz w aplikacjach / kontroli misji systemu Mac OS X.

Krótko mówiąc, nie dotykaj CFBundleNamei nie zostawiaj domyślnej wartości, tj ${PRODUCT_NAME}.

Raptor
źródło
0

Należy zauważyć, że nazwa pakietu jest również używana jako przedrostek dla agenta użytkownika HTTP.

awph
źródło