다음은 좋은 질문입니다.
번들 이름, 실행 파일 이름, 제품 이름 … 다른 것이 있습니까?
하지만 코코아 응용 프로그램의 정보 목록에서 “번들 표시 이름”과 “번들 이름”의 차이점이 궁금합니다.
답변
다른 답변 중 어떤 것도 질문에 간결하게 대답하지 않는다고 생각합니다.
-
CFBundleDisplayName
-표시 : 아이콘 아래 . 문서에 따르면 현지화해야하지만 앱 자체가 현지화 된 경우에만 해당됩니다. -
CFBundleName
-표시됨 : 잘 모르겠습니다 . 문서는 목록에서 사용되므로 최대 16자를 권장하지만 예를 들어 설정 → 일반 → 앱 사용 목록에서CFBundleDisplayName
실제로 사용합니다 . 지금까지 나는 이것이 정확히 어디에 사용되는지 결코 알지 못했습니다.
아, 이것은 iOS 앱용이며 다른 OS에서는 말할 수 없습니다.
답변
Wevah의 답변에 감사드립니다. 이 두 상수와 혼동 한 사람들을위한 설명입니다.
CFBundleDisplayName
CFBundleDisplayName
(문자열-iOS, Mac OS X)는 번들의 표시 이름을 지정합니다. 번들에 대해 지역화 된 이름을 지원하는 경우 정보 속성 목록 파일과 언어 하위 디렉터리의 InfoPlist.strings 파일 모두에이 키를 포함합니다. 이 키를 현지화하는 경우 현지화 된 버전의 CFBundleName 키도 포함해야합니다.
번들을 현지화하지 않으려면 Info.plist 파일에이 키를 포함하지 마십시오. 이 키를 포함해도 번들 이름 표시에는 영향을주지 않지만이 키의 현지화 된 버전을 검색 할 때 성능이 저하됩니다.
번들의 현지화 된 이름을 표시하기 전에 Finder는이 키의 값을 파일 시스템에있는 번들의 실제 이름과 비교합니다. 두 이름이 일치하면 Finder는 번들의 적절한 InfoPlist.strings 파일에서 현지화 된 이름을 표시합니다. 이름이 일치하지 않으면 Finder는 파일 시스템 이름을 표시합니다.
Mac OS X의 표시 이름에 대한 자세한 내용은 파일 시스템 개요를 참조하십시오.
CFBundleName
CFBundleName
(문자열-iOS, Mac OS X)는 번들의 짧은 이름을 식별합니다. 이 이름은 16 자 미만이어야하며 메뉴 표시 줄과 응용 프로그램의 정보 창에 표시하기에 적합해야합니다. 해당 .lproj 하위 디렉토리의 InfoPlist.strings 파일에이 키를 포함하여 지역화 된 값을 제공 할 수 있습니다. 이 키를 현지화하는 경우 키도 포함해야합니다.CFBundleDisplayName.
답변
애플에 따르면
번들 표시 이름 :
표시되는 앱 이름
on the iPhone home screen
은 iOS 앱 Info.plist의 CFBundleDisplayName (또는 Xcode에서 사람이 읽을 수있는 문자열 인 “Bundle display name”) 항목에서 가져옵니다.마찬가지로, 당신은에서 볼 수있는 응용 프로그램 이름
WatchKit app's launch screen
과notifications
당신의 WatchKit 응용 프로그램의 Info.plist 파일의 CFBundleDisplayName에서 온다
번들 이름 :
The Apple Watch app on the iPhone
현재 Info.plist의 CFBundleName (또는 “Bundle name”) 항목에 지정된 iOS 앱의 번들 이름 (번들 표시 이름이 아님)을 사용합니다.
여기 를 클릭하여 다른 관련 스크린 샷을보고 Apple 개발자 페이지에서 자세한 정보를 확인할 수 있습니다 .
답변
내 경험에서 :
- CFBundleDisplayName 은 iOS 장치의 앱 그리드에서 사용됩니다.
- CFBundleName 은 iTunes 라이브러리에 저장된 앱 목록에서 사용됩니다.
답변
번들 표시 이름 ( CFBundleDisplayName
)이 지정되지 않은 경우에만 CFBundleName
앱 아이콘 아래 에 번들 이름 ( )의 값이 표시됩니다.
즉 유의하시기 바랍니다 CFBundleDisplayName
지역화이며, 그것은 아이폰 OS 스프링 메뉴 및 맥 OS X 응용 프로그램 / 미션 컨트롤에 표시되는 앱의 이름을 설정하는 데 사용되어야한다.
요컨대, 터치하지 CFBundleName
말고 그 값을 기본값으로 두십시오 ${PRODUCT_NAME}
.
답변
번들 이름은 HTTP 사용자 에이전트의 접두사로도 사용됩니다.