UTI'ler ve Lansman Hizmetleri
“Bilinen” dosya türlerinin listesi nerede saklanıyor?
"Dosya türleri" için resmi terim
Tekdüzen Tip Tanımlayıcıları
(UTI) ve UTI'lerin veri tabanı Başlatma Hizmetleri tarafından korunmaktadır
.
Kullanılması Terminal , kullandığınız Lansman Hizmetleri veritabanının içeriğini görüntüleyebilir lsregister
saklanır aracı:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
Her çalıştırmak istediğinizde o uzun yolu belirlemek yerine lsregister
, dizini geçici olarak bilgisayarınıza ekleyebilirsiniz PATH
:
PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"
ve sonra lsregister
sadece girerek koşabilirsiniz :
lsregister
Launch Services veritabanının içeriğini görüntülemek için:
lsregister -dump
Yeni UTI'leri Bildirmek
OS X'in yeni dosya türlerini tanımasını sağlamanın bir yolu var mı?
"Yeni Düzgün Tip Tanımlayıcıları Bildirmek" adlı bu Apple makalesi,
bunun nasıl yapılacağı hakkında faydalı bilgiler sunmaktadır. İşte tüm işlem:
1. Sahte bir uygulama oluşturun
Launch Services'e kaydolmak için sahte bir uygulama oluşturun:
- AppleScript Editor'ı açın (OS X'in Yardımcı Programlar klasöründe bulunur).
- Onun ayarı: (Masaüstünüzde örneğin) bir yere yeni bir boş komut dosyasını kaydedin Dosya Formatı için Başvuru .
2. Info.plist dosyasını açın
- Bulucu'da yeni kukla uygulamanızı bulun.
- Üzerine sağ tıklayın ve açılan menüden Paket İçeriğini Göster'i seçin.
- İçindekiler klasörünü açın .
- Aç Info.plist bir metin düzenleyicisinde dosyayı (örn: TextEdit ).
3. Yeni UTI'nızı ekleyin
İki anahtar seçeneği var:
UTExportedTypeDeclarations
- kendi özel dosya adı uzantılarınız için.
UTImportedTypeDeclarations
- Zaten var olan ancak OS X tarafından tanınmayan dosya adı uzantıları için.
İhtiyaçlarınıza en uygun anahtarı seçin.
Sonra Info.plist dosyasında, son iki satırdan ( </dict></plist>
) önce bu kodu ekleyin:
<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>
aşağıdaki değişiklikleri yapmak:
KEY
Seçtiğiniz anahtarla değiştirin ( UTExportedTypeDeclarations
veya UTImportedTypeDeclarations
).
IDENTIFIER
Uygun bir ters DNS tanımlayıcısı ile değiştirin :
- İhracat - Gibi bir şey
com.mycompany.mytype
- İthal - For id Software 'in
Doom WAD biçiminde, uygun bir tanımlayıcı olacaktır
com.idsoftware.wad
- Değiştir
EXTENSION
(lider nokta olmadan) dosya adı uzantısı, mesela ile: wad
.
Bu, Launch Services'ın yeni UTI'nızı kabul etmesi için gereken minimum koddur. Aşağıdaki isteğe bağlı özellikleri de ekleyebilirsiniz:
UTTypeConformsTo
- Aşağıdaki Eke bakınız.
UTTypeDescription
- Finder'da görüntülenecek kullanıcı tarafından görülebilir bir açıklama.
UTTypeIconFile
- Sahte uygulamanızdaki İçerik / Kaynaklar klasörüne bir Apple Simge Resmi
dosyası eklerseniz ve dosya adını bu özelliğe eklerseniz, yeni dosya adı uzantınız olan dosyalar bu simgeyi kullanır.
UTTypeReferenceURL
- Bu türü açıklayan referans belgenin URL'si.
İşte tüm isteğe bağlı özellikleri gösteren eksiksiz bir örnek:
<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. Yeni UTI'nizi Launch Services'e kaydedin
Terminal'de bu komutu çalıştırın:
lsregister <PATH_TO_APP>
<PATH_TO_APP>
Sahte uygulamanızın yolu ile değiştirilmesi , örneğin:
lsregister ~/Desktop/MyDummyApp.app
Şimdi yeni dosya adı uzantınızla bir dosya oluşturup Finder'da seçip hit'i Enterseçerseniz, Finder otomatik olarak uzantıyı değil yalnızca dosya adı bölümünü seçmelidir.
Launch Services veritabanının içeriğini görüntülerseniz:
lsregister -dump
yeni UTI'nizi listede bulmalısınız:
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
Daha sonra yeni UTI'nızın kaydını silmek istiyorsanız, -u
seçeneği aşağıdakilere iletin lsregister
:
lsregister -u ~/Desktop/MyDummyApp.app
Ek: UTI hiyerarşisi ve uygunluk
OS X, burada listelenen UTI'lerin hiyerarşisini ilan eder:
Sistem Beyan Edilen Üniforma Tip Tanımlayıcıları .
İşte hiyerarşideki birkaç 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
Her UTI, ana UTI'sına "uygundur":
Örneğin, public.html
HTML metnini tanımlayan UTI , temel metin tanımlayıcısına uygundur public.text
. Bu durumda, uyumluluk, genel metin dosyalarını açabilen uygulamaların HTML dosyalarını da açabilecekleri şekilde tanımlamasını sağlar. ( ref )
Yeni bir UTI oluştururken, UTTypeConformsTo
özelliği mevcut UTI'lardan birine ayarlamak iyi bir fikirdir .
Yeni İYE kaynak kodu türüdür Örneğin, o zaman belirlesin UTTypeConformsTo
mülkü public.source-code
, açabildiği herhangi bir uygulama tarafından açılabilir, böylece
public.source-code
ya public.plain-text
ya public.text
dosyaları.
CFBundleTypeExtensions
OS X 10.5'te kullanımdan kaldırılan eski bir anahtardır . 2007 yılından bu yana tercih edilen yöntem belirtildiği gibi, yeni İYE beyan etmektir burada ve tarif Cevabıma .