Qt 5.3.2를 사용하여 Mac 응용 프로그램을 개발했습니다. 이 응용 프로그램은 특정 확장명을 가진 파일을 처리합니다 (.xyz
).Mac OS X 파일 연결은 작동하지만 파일 아이콘이 변경되지 않았습니다.
이름이 XYZ.icns 인 아이콘 파일을 만들고이를 내 응용 프로그램 번들 Resource 폴더 (MyApp.app/Contents/Resources/XYZ.icns
)에 추가했습니다.
또한 파일 연결을 설정하기 위해 번들의 Info.plist 파일을 수정했습니다. 나는이 항목을 추가 한 :
<key>CFBundleDocumentTypes</key>
<array>
<!-- Registered file accociation -->
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleTypeName</key>
<string>XYZ</string>
<key>CFBundleTypeExtensions</key>
<array>
<string>xyz</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>XYZ</string>
</dict>
<array>
그 결과 협회는 그러나 (내 응용 프로그램을 열 않는 파일을 더블 클릭)에 작업 한 파일이 아이콘이 교체되지 않은 (여전히 빈 문서 아이콘 표시).
내가 빠뜨린 것이 있습니까? 나는 예제를 위해 다른 어플리케이션을 살펴 보았고, 내가했던 것 이상은 보이지 않는다.
편집 : 나는 더 많은 테스트를했다.
...
--------------------------------------------------------------------------------
Container mount state: mounted
bundle id: 105396
...
path: /Applications/MyApp.app
name: MyApp
...
--------------------------------------------------------
claim id: 27628
name: XYZ
rank: Default
reqCaps:
roles: Editor
flags: relative-icon-path doc-type
icon: Contents/Resources/XYZ.icns
bindings: .xyz
--------------------------------------------------------------------------------
...
EDIT2 : 나는 파일 아이콘 정보를 포함한 파일 형식에 대한 주장을 찾을 수 있습니다, 그 결과에
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump
: 나는이 명령으로 실행 서비스 데이터를 덤프 시간 후 마침내 독자적으로 작업해야합니다. 밤새 OS 업데이트가 설치되어 있고 컴퓨터를 종료해야했습니다 (Launch Service는 아마도 스스로를 새로 고쳤습니다). 내 질문을 업데이트 할 것입니다 : 응용 프로그램을 설치하거나 수정할 때 Launch Service가 관련 파일 아이콘을 새로 고치는 방법을 확인하려면 어떻게합니까?
http://www.tekrevue.com/tip/rebuild-launchservices-fix-duplicate-entries-os-xs-open-menu/ –
안녕하세요,이 질문에 대한 답변을 찾았습니까? – Vijay
@vijay se 편집 2. 그것은 독자적으로 작동하지만 나는 이유를 모른다. – gfrigon