อะไรคือความแตกต่างระหว่าง "ชื่อที่แสดงบันเดิล" และ "ชื่อบันเดิล" ในข้อมูลแอปพลิเคชันโกโก้


127

นี่เป็นคำถามที่ดี:

Bundle Name, Executeable Name, Product Name ... มีอะไรอีกไหม?

แต่ฉันแค่สงสัยเกี่ยวกับความแตกต่างระหว่าง "ชื่อที่แสดงบันเดิล" และ "ชื่อบันเดิล" ในข้อมูลแอปพลิเคชันโกโก้

คำตอบ:


102

ฉันไม่คิดว่าคำตอบอื่นใดจะตอบคำถามได้อย่างกระชับ

  • CFBundleDisplayName- แสดง: ด้านล่างไอคอน ตามเอกสารควรแปลเป็นภาษาท้องถิ่น แต่เฉพาะในกรณีที่แอปนั้นเป็นภาษาท้องถิ่นมิฉะนั้นจะมีการลงโทษบางอย่าง (หากเป็นจริงในความเป็นจริงฉันไม่สามารถพูดได้)

  • CFBundleName- แสดง: ฉันมีความคิด เอกสารแนะนำว่าจะใช้ในรายการจึงแนะนำสูงสุด 16 ตัวอักษร แต่ตัวอย่างเช่นการตั้งค่า→ทั่วไป→รายการการใช้งานแอพนั้นใช้CFBundleDisplayNameจริงๆ จนถึงปัจจุบันฉันไม่เคยคิดว่าจะใช้อันนี้ที่ไหน

โอ้นี่สำหรับแอพ iOS ไม่สามารถพูดแทน OS อื่นได้


7
CFBundleDisplayName ยังเป็นสิ่งที่แสดงเป็นชื่อของการแจ้งเตือน (ในศูนย์การแจ้งเตือนบนหน้าจอล็อก ฯลฯ )
Justin Russell

114
คำตอบที่ "ไม่รู้" ได้รับเครื่องหมายถูกและคะแนนโหวตได้อย่างไร
badweasel

14
ประเด็นของฉันคือดูเหมือนจะไม่มีใครรู้ว่ามันถูกใช้ที่ไหนยังไม่มีใครตอบได้ หากคุณทราบคำตอบคุณสามารถเพิ่มคำตอบได้โดยแตะ "เพิ่มคำตอบอื่น"
จอนนี่

2
CFBundleDisplayName ยังใช้ในคุณสมบัติการแชร์ไฟล์ของ iTunes หากปล่อยทิ้งไว้เป็นสีดำแอพจะไม่แสดงในรายการ iTunes แม้ว่าจะเปิดใช้งานคุณสมบัตินี้แล้วก็ตาม
ถึง

1
ฉันคิดว่า CFBundleName เป็นชื่อของโฟลเดอร์แอปหรือ "บันเดิล" ที่เก็บทุกอย่าง
เคลิน

100

ขอบคุณสำหรับคำตอบของ Wevah นี่คือคำอธิบายสำหรับผู้ที่สับสนกับค่าคงที่สองค่านี้

CFBundleDisplayName

CFBundleDisplayName(String - iOS, Mac OS X) ระบุชื่อที่แสดงของบันเดิล หากคุณสนับสนุนชื่อท้องถิ่นสำหรับบันเดิลของคุณให้รวมคีย์นี้ไว้ในไฟล์รายการคุณสมบัติข้อมูลของคุณและในไฟล์ InfoPlist.strings ของไดเร็กทอรีย่อยภาษาของคุณ หากคุณแปลคีย์นี้คุณควรรวมคีย์ CFBundleName เวอร์ชันที่แปลแล้วด้วย

หากคุณไม่ต้องการโลคัลไลซ์บันเดิลของคุณอย่ารวมคีย์นี้ในไฟล์ Info.plist ของคุณ การรวมคีย์นี้จะไม่ส่งผลต่อการแสดงชื่อบันเดิล แต่จะมีโทษด้านประสิทธิภาพในการค้นหาคีย์นี้ในเวอร์ชันที่แปลแล้ว

ก่อนที่จะแสดงชื่อโลคัลไลซ์สำหรับบันเดิลของคุณ Finder จะเปรียบเทียบค่าของคีย์นี้กับชื่อจริงของบันเดิลของคุณในระบบไฟล์ หากทั้งสองชื่อตรงกัน Finder จะแสดงชื่อที่แปลจากไฟล์ InfoPlist.strings ที่เหมาะสมของบันเดิลของคุณ หากชื่อไม่ตรงกัน Finder จะแสดงชื่อระบบไฟล์

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชื่อที่แสดงใน Mac OS X โปรดดูภาพรวมระบบไฟล์


CFBundleName

CFBundleName(String - iOS, Mac OS X) ระบุชื่อย่อของบันเดิล ชื่อนี้ควรมีความยาวน้อยกว่า 16 อักขระและเหมาะสำหรับการแสดงในแถบเมนูและหน้าต่างข้อมูลของแอปพลิเคชัน คุณสามารถรวมคีย์นี้ในไฟล์ InfoPlist.strings ของไดเร็กทอรีย่อย. lproj ที่เหมาะสมเพื่อระบุค่าที่แปลเป็นภาษาท้องถิ่น หากคุณแปลคีย์นี้คุณควรรวมคีย์ด้วยCFBundleDisplayName.


1
"แถบเมนูและหน้าต่างข้อมูลของแอปพลิเคชัน" คืออะไร ??? - นี่หมายถึงบางสิ่งใน Xcode, โปรแกรมจำลองหรืออุปกรณ์ iOS หรือไม่? @xhan - มีความช่วยเหลือไหม
Ethan Parker

@BeemerFan มันหมายถึงแถบเมนู OS X xhan ได้อ้างถึงเอกสารของ Apple และหากคุณสังเกตเห็นว่า "iOS, Mac OS X" จึงมีผลกับทั้งสองอย่าง (และรายละเอียดบางส่วนเป็นข้อมูลเฉพาะแพลตฟอร์ม)
Chris Page

เพื่ออ้างอิงแหล่งที่มานี่คือข้อมูลเกี่ยวกับ CFBundleDisplayName จากเอกสารของ Apple: developer.apple.com/library/ios/documentation/General/Reference/…
tylermilner

เป็นเรื่องผิดที่จะบอกว่าอย่าใส่คีย์นี้เว้นแต่มีแผนที่จะแปลเป็นภาษาท้องถิ่น เอกสารของ Apple บอกว่าคุณต้องใส่คีย์นี้เพราะ Siri ใช้มัน developer.apple.com/library/archive/documentation/General/…
ท้าทาย

1
ดูเหมือนว่าตอนนี้ Apple ต้องใช้ CFBundleDisplayName อย่างน้อยวันที่ 2019-06-28 หรือบางแห่งเมื่อเร็ว ๆ นี้ คุณได้รับการปฏิเสธไบนารีที่ไม่ถูกต้องในขณะนี้
Dave Hubbard

29

แมวยุ่ง

ตามที่ Apple ระบุ

ชื่อที่แสดงของกลุ่ม:

ชื่อแอปที่แสดงon the iPhone home screenมาจากรายการ CFBundleDisplayName (หรือ "Bundle display name" เป็นสตริงที่มนุษย์อ่านได้ใน Xcode) ของ Info.plist ของแอป iOS ของคุณ

ในทำนองเดียวกันชื่อแอปที่คุณเห็นในของคุณWatchKit app's launch screen และnotificationsมาจาก CFBundleDisplayName ของ Info.plist แอป WatchKit ของคุณ

ชื่อกลุ่ม:

The Apple Watch app on the iPhone ปัจจุบันใช้ชื่อบันเดิล (ไม่ใช่ชื่อที่แสดงบันเดิล) ของแอป iOS ของคุณซึ่งระบุโดยรายการ CFBundleName (หรือ "Bundle name") ของ Info.plist

คุณสามารถดูภาพหน้าจออื่น ๆ ที่เกี่ยวข้องและการเข้าถึงข้อมูลเพิ่มเติมได้ที่หน้านักพัฒนาแอปเปิ้ลโดยการคลิกที่นี่


19
ฉันอดไม่ได้ที่จะสงสัยว่าถ้าคุณกำลังจะประสบปัญหาในการถ่ายภาพหน้าจอเพื่อแสดงว่ามีการใช้ค่าอย่างไรการให้ค่าที่แตกต่างกันเพื่อให้ปรากฏแตกต่างกันจะดีกว่าหรือไม่
Richard Szalay

15

จากประสบการณ์ของฉัน:

  • CFBundleDisplayNameใช้ในตารางของแอปบนอุปกรณ์ iOS
  • CFBundleNameใช้ในรายการแอพที่เก็บไว้ในคลัง iTunes

6
เพียงแค่ Apple ทำสิ่งง่ายๆให้ซับซ้อน
เป็ด

ดูเหมือนว่าใช่แล้ว Google Hangouts มีชื่อที่แสดงสั้น ๆ และชื่อคลัง iTunes ที่ยาวจนน่ารังเกียจ

1
CFBundleName จะปรากฏขึ้นด้วยหากคุณได้รับข้อความแสดงข้อผิดพลาดในการติดตั้งแอปเช่น " ไม่สามารถติดตั้ง( CFBundleName ) ได้ในขณะนี้"
saveknut

10

เฉพาะในกรณีที่CFBundleDisplayNameไม่ได้ระบุBundle Display Name ( ) ค่าของ Bundle Name (CFBundleName ) จะถูกใช้เพื่อแสดงภายใต้ไอคอนแอพ

โปรดทราบว่า CFBundleDisplayNameสามารถแปลเป็นภาษาท้องถิ่นได้และควรใช้เพื่อตั้งชื่อแอปที่แสดงในเมนู iOS Springboard และแอปพลิเคชั่น MacOS X / Mission Control

ในระยะสั้นไม่ได้สัมผัสและปล่อยให้ความคุ้มค่าเป็นค่าเริ่มต้นคือCFBundleName${PRODUCT_NAME}


0

โปรดทราบว่าชื่อบันเดิลยังใช้เป็นคำนำหน้าสำหรับ HTTP user-agent

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.