Sự khác biệt giữa tên hiển thị gói bó tên là gì và tên gói bó trong tên ứng dụng ca cao


Câu trả lời:


102

Tôi không nghĩ bất kỳ câu trả lời nào khác trả lời chính xác câu hỏi.

  • CFBundleDisplayName- hiển thị: biểu tượng bên dưới . Theo tài liệu, nên được bản địa hóa, nhưng chỉ khi bản thân ứng dụng được bản địa hóa, nếu không sẽ có một số hình phạt (nếu điều này là đúng trong thực tế tôi không thể nói)

  • CFBundleName- hiển thị: Tôi không có ý tưởng . Tài liệu đề xuất rằng nó sẽ được sử dụng trong các danh sách do đó khuyến nghị tối đa 16 ký tự, nhưng ví dụ: Cài đặt → Chung → Danh sách sử dụng các ứng dụng CFBundleDisplayNamethực sự sử dụng . Cho đến nay tôi chưa bao giờ tìm ra chính xác nơi này được sử dụng.

Ồ, đây là cho các ứng dụng iOS, không thể nói cho các hệ điều hành khác.


7
CFBundleDisplayName cũng là thứ hiển thị dưới dạng tiêu đề của thông báo (trong Trung tâm thông báo, trên màn hình khóa, v.v.).
Justin Russell

114
Làm thế nào mà một câu trả lời "Tôi không có ý tưởng" có được một dấu kiểm và bỏ phiếu?
badweasel

14
Quan điểm của tôi là dường như không ai biết nó được sử dụng ở đâu, chưa ai trả lời. Nếu bạn biết câu trả lời, vui lòng thêm nó bằng cách nhấn "Thêm câu trả lời khác".
Jonny

2
CFBundleDisplayName cũng được sử dụng trong Tính năng chia sẻ tệp iTunes. Nếu để lại màu đen, ứng dụng sẽ không hiển thị trong danh sách iTunes mặc dù tính năng này được bật.
unom

1
Tôi cho rằng CFBundleName là tên của thư mục ứng dụng hoặc "gói" nơi mọi thứ được lưu trữ.
kelin

100

cảm ơn câu trả lời của Wevah. đây là những mô tả cho những người nhầm lẫn với hai hằng số này.

Tên CFBundleDisplay

CFBundleDisplayName(Chuỗi - iOS, Mac OS X) chỉ định tên hiển thị của gói. Nếu bạn hỗ trợ tên được bản địa hóa cho gói của mình, hãy bao gồm khóa này trong cả tệp danh sách thuộc tính thông tin của bạn và trong tệp InfoPlist.strings của thư mục con ngôn ngữ của bạn. Nếu bạn bản địa hóa khóa này, bạn cũng nên bao gồm một phiên bản đã được bản địa hóa của khóa CFBundleName.

Nếu bạn không có ý định bản địa hóa gói của mình, đừng bao gồm khóa này trong tệp Info.plist của bạn. Việc bao gồm khóa này không ảnh hưởng đến việc hiển thị tên gói nhưng không bị phạt hiệu năng để tìm kiếm các phiên bản địa phương của khóa này.

Trước khi hiển thị tên được bản địa hóa cho gói của bạn, Finder sẽ so sánh giá trị của khóa này với tên thực của gói trong hệ thống tệp. Nếu hai tên trùng khớp, Finder sẽ tiến hành hiển thị tên được bản địa hóa từ tệp InfoPlist.strings thích hợp của gói của bạn. Nếu tên không khớp, Finder sẽ hiển thị tên hệ thống tệp.

Để biết thêm thông tin về tên hiển thị trong Mac OS X, hãy xem Tổng quan về hệ thống tệp.


Tên CFBundle

CFBundleName(Chuỗi - iOS, Mac OS X) xác định tên ngắn của gói. Tên này phải dài dưới 16 ký tự và phù hợp để hiển thị trên thanh menu và cửa sổ Thông tin của ứng dụng. Bạn có thể bao gồm khóa này trong tệp InfoPlist.strings của thư mục con .lproj thích hợp để cung cấp các giá trị cục bộ cho nó. Nếu bạn bản địa hóa khóa này, bạn cũng nên bao gồm khóaCFBundleDisplayName.


1
"Thanh menu và cửa sổ Thông tin của ứng dụng" là gì ??? - Đây có phải là đề cập đến một cái gì đó trong Xcode, trình giả lập hoặc thiết bị iOS không? @xhan - Có giúp được gì không?
Ethan Parker

@BeemerFan nó đề cập đến thanh menu OS X. xhan đã trích dẫn tài liệu của Apple và nếu bạn chú ý, nó có ghi "iOS, Mac OS X, vì vậy, nó áp dụng cho cả hai (và một số chi tiết cụ thể là nền tảng, rõ ràng).
Chris Trang

Chỉ cần trích dẫn nguồn, đây là thông tin về CFBundleDisplayName từ tài liệu của Apple: developer.apple.com/l
Library / ios / documentation / Generalal / Reference / bạo

Thật sai lầm khi nói rằng không bao gồm khóa này trừ khi có kế hoạch nội địa hóa. Tài liệu của Apple nói rằng bạn phải bao gồm khóa này vì Siri sử dụng nó. developer.apple.com/l
thách thức

1
Có vẻ như Apple hiện yêu cầu CFBundleDisplayName ít nhất là 2019-06-28, hoặc ở đâu đó gần đây. Bạn nhận được một từ chối nhị phân không hợp lệ bây giờ.
Dave Hubbard

29

một con mèo bận rộn

Theo Apple,

Tên hiển thị của gói:

Tên ứng dụng được hiển thị on the iPhone home screenxuất phát từ mục nhập CFBundleDisplayName (hoặc "Tên hiển thị gói" dưới dạng chuỗi có thể đọc được trong Xcode) của Info.plist của ứng dụng iOS của bạn

Tương tự, tên ứng dụng bạn thấy trong bạn WatchKit app's launch screennotificationsxuất phát từ CFBundleDisplayName của Info.plist của ứng dụng WatchKit của bạn

Tên gói:

The Apple Watch app on the iPhone hiện đang sử dụng tên gói (không phải tên hiển thị gói) của ứng dụng iOS của bạn, được chỉ định bởi mục nhập CFBundleName (hoặc "Tên gói") của Info.plist

Bạn có thể xem các ảnh chụp màn hình liên quan khác và tiếp cận thêm thông tin tại trang Nhà phát triển của Apple bằng cách nhấp vào đây .


19
Tôi không thể tự hỏi: nếu bạn gặp rắc rối khi chụp ảnh màn hình để cho thấy rằng các giá trị được sử dụng như thế nào, liệu có tốt hơn không khi cung cấp cho chúng các giá trị khác nhau để chúng xuất hiện khác nhau?
Richard Szalay

15

Từ kinh nghiệm của tôi:

  • CFBundleDisplayName được sử dụng trong lưới ứng dụng trên thiết bị iOS
  • CFBundleName được sử dụng trong danh sách các ứng dụng được lưu trữ trong thư viện iTunes

6
Chỉ cần Apple để làm cho một điều đơn giản phức tạp.
Vịt

Điều này có vẻ đúng, Google Hangouts có tên hiển thị ngắn và tên thư viện iTunes giống như spam dài đáng ghét.

1
CFBundleName cũng xuất hiện nếu bạn nhận được thông báo lỗi khi cài đặt một ứng dụng, chẳng hạn như "( CFBundleName ) không thể được cài đặt tại thời điểm này".
saveknut

10

Chỉ khi Tên hiển thị gói ( CFBundleDisplayName) không được chỉ định, giá trị của Tên gói ( CFBundleName) sẽ được sử dụng để hiển thị dưới Biểu tượng ứng dụng.

Xin lưu ý rằng CFBundleDisplayNamecó thể bản địa hóa và nên được sử dụng để đặt tên Ứng dụng được hiển thị trong menu Springboard của iOS & Mac OS X Application / Mission Control.

Nói tóm lại, đừng chạm CFBundleNamevà để giá trị của nó là mặc định, nghĩa là ${PRODUCT_NAME}.


0

Lưu ý rằng tên gói cũng được sử dụng làm tiền tố cho tác nhân người dùng HTTP.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.