UTI 및 출시 서비스
"알려진"파일 형식 목록은 어디에 저장됩니까?
"파일 유형"의 공식 용어는
UTI ( Uniform Type Identifiers )이며 UTI 데이터베이스는 Launch Services에서 유지 보수
합니다 .
터미널을 사용하면 다음 lsregister
위치에 저장된 도구를 사용하여 Launch Services 데이터베이스의 내용을 볼 수 있습니다 .
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
실행할 때마다 긴 경로를 지정하는 대신 lsregister
임시로 디렉토리를 다음에 추가 할 수 있습니다 PATH
.
PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"
다음을 lsregister
입력하여 실행할 수 있습니다 .
lsregister
Launch Services 데이터베이스의 내용을 보려면
lsregister -dump
새로운 UTI 선언
OS X이 새로운 파일 형식을 인식하도록하는 방법이 있습니까?
이 Apple 기사
"New Uniform Type Identifiers 선언" 은이를 수행하는 방법에 대한 유용한 정보를 제공합니다. 전체 과정은 다음과 같습니다.
1. 더미 응용 프로그램 만들기
Launch Services에 등록 할 더미 애플리케이션을 작성하십시오.
- AppleScript 편집기를 엽니 다 (OS X의 유틸리티 폴더에 있음).
- 파일 형식 을 응용 프로그램으로 설정하여 비어있는 새 스크립트를 어딘가에 저장하십시오 (예 : 데스크탑) .
Info.plist 파일을 엽니 다
- Finder에서 새로운 더미 응용 프로그램을 찾으십시오.
- 마우스 오른쪽 버튼으로 클릭 하고 팝업 메뉴에서 패키지 내용보기를 선택하십시오 .
- 오픈 컨텐츠 폴더에 있습니다.
- 열기 의 Info.plist의 (: 예를 들어, 텍스트 편집기에서 파일을 텍스트 편집기 ).
3. 새로운 UTI 추가
두 가지 키 중에서 선택할 수 있습니다.
UTExportedTypeDeclarations
– 사용자 정의 파일 이름 확장자입니다.
UTImportedTypeDeclarations
– 이미 존재하지만 OS X에서 인식하지 못하는 파일 이름 확장자의 경우.
필요에 가장 적합한 키를 선택하십시오.
그런 다음 Info.plist 파일에서 마지막 두 줄 ( </dict></plist>
) 전에이 코드를 추가하십시오.
<key>KEY</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>IDENTIFIER</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>EXTENSION</string>
</array>
</dict>
</dict>
</array>
다음과 같이 변경하십시오.
KEY
선택한 키 ( UTExportedTypeDeclarations
또는 UTImportedTypeDeclarations
)로 교체하십시오 .
IDENTIFIER
적합한 역방향 DNS 식별자로 교체하십시오 .
- 수출 – 같은 것
com.mycompany.mytype
- 가져 오기 – id Software 의
Doom WAD 형식의 경우 적절한 식별자는 다음과 같습니다.
com.idsoftware.wad
- 다음
EXTENSION
과 같이 파일 이름 확장자 (앞의 점없이)로 바꾸십시오 wad
.
Launch Services가 새 UTI를 수락하는 데 필요한 최소 코드입니다. 다음과 같은 선택적 속성을 추가 할 수도 있습니다.
UTTypeConformsTo
– 아래 부록을 참조하십시오.
UTTypeDescription
– 사용자가 볼 수있는 설명으로, Finder에 표시됩니다.
UTTypeIconFile
– 더미 응용 프로그램
의 Contents / Resources 폴더에 Apple Icon Image 파일을 추가하고이 속성에 파일 이름을 추가하면 새 파일 이름 확장자를 가진 파일이이 아이콘을 사용합니다.
UTTypeReferenceURL
–이 유형을 설명하는 참조 문서의 URL.
다음은 모든 선택적 속성을 보여주는 완전한 예입니다.
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>com.idsoftware.wad</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>wad</string>
</array>
</dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Doom WAD file</string>
<key>UTTypeIconFile</key>
<string>DoomWAD.icns</string>
<key>UTTypeReferenceURL</key>
<string>http://en.wikipedia.org/wiki/Doom_WAD</string>
</dict>
</array>
4. Launch Services에 새로운 UTI를 등록하십시오
터미널에서이 명령을 실행하십시오.
lsregister <PATH_TO_APP>
<PATH_TO_APP>
더미 응용 프로그램의 경로로 대체 하십시오. 예 :
lsregister ~/Desktop/MyDummyApp.app
이제 새로운 파일 이름 확장자를 가진 파일을 만든 다음 EnterFinder에서 파일을 선택하고을 누르면 파인더가 확장자가 아닌 파일 이름 부분 만 자동으로 선택해야합니다.
Launch Services 데이터베이스의 내용을 보는 경우 :
lsregister -dump
새 UTI가 다음과 같이 나열되어 있어야합니다.
type id: 50364
bindableKey: 12608
generation: 1
uti: com.idsoftware.wad
description: Doom WAD file
flags: imported active apple-internal untrusted
icon: DoomWAD.icns
conforms to: public.data
tags: .wad
나중에 새 UTI를 등록 취소하려면 -u
옵션을 lsregister
다음으로 전달하십시오 .
lsregister -u ~/Desktop/MyDummyApp.app
부록 : UTI 계층 구조 및 적합성
OS X은 UTI의 계층 구조를 선언하며 여기에는 System-Declared Uniform Type Identifiers 가 나열됩니다
.
계층 구조에 몇 가지 UTI가 있습니다.
public.content
public.text
public.rtf
public.html
public.xml
public.plain-text
public.source-code
public.c-source
public.c-header
com.sun.java-source
public.image
public.jpeg
public.tiff
public.png
public.audiovisual-content
public.movie
public.audio
각 UTI는 상위 UTI를 "준수"합니다.
예를 들어, public.html
HTML 텍스트를 정의 하는 UTI 는 기본 텍스트 식별자 인을 따릅니다 public.text
. 이 경우 준수를 통해 일반 텍스트 파일을 열 수있는 응용 프로그램은 HTML 파일을 열 수있는 것으로 식별 할 수 있습니다. ( REF )
새 UTI를 만들 때는 UTTypeConformsTo
속성을 기존 UTI 중 하나로 설정하는 것이 좋습니다 .
예를 들어, 새 UTI가 소스 코드 유형 인 경우 또는 파일을 열 수있는 모든 애플리케이션에서 열 수 있도록
UTTypeConformsTo
특성을로 설정해야 합니다.public.source-code
public.source-code
public.plain-text
public.text
CFBundleTypeExtensions
OS X 10.5에서는 더 이상 사용되지 않는 레거시 키입니다 . 2007 년 이후 선호되는 방법은 여기에 언급 되고 제 답변에 설명 된 대로 새로운 UTI를 선언하는 것 입니다.