Layanan Peluncuran bertanggung jawab atas asosiasi file default.
Katakanlah saya ingin mengubah semua file teks untuk dibuka di Sublime Text 2.
Pertama saya membutuhkan kMDItemCFBundleIdentifier untuk Sublime Text 2. Saya dapat menggunakan mdls untuk mendapatkan informasi ini:
> mdls /Applications/Sublime\ Text\ 2.app
_kTimeMachineIsCreationMarker = 1
_kTimeMachineNewestSnapshot = 4001-01-01 00:00:00 +0000
_kTimeMachineOldestSnapshot = 2012-02-22 03:49:19 +0000
kMDItemCFBundleIdentifier = "com.sublimetext.2"
....snip....
Saya bisa mengetahui nilai tipe konten untuk file teks dengan memeriksa salah satunya dengan mdls :
> mdls test.txt
kMDItemContentCreationDate = 2012-03-25 04:18:50 +0000
kMDItemContentModificationDate = 2012-03-25 04:18:50 +0000
kMDItemContentType = "public.plain-text"
kMDItemContentTypeTree = (
"public.plain-text",
"public.text",
"public.data",
"public.item",
"public.content"
)
kMDItemDateAdded = 2012-03-25 04:18:50 +0000
kMDItemDisplayName = "test.txt"
kMDItemFSContentChangeDate = 2012-03-25 04:18:50 +0000
kMDItemFSCreationDate = 2012-03-25 04:18:50 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "test.txt"
kMDItemFSNodeCount = 975
kMDItemFSOwnerGroupID = 20
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 975
kMDItemFSTypeCode = ""
kMDItemKind = "Plain Text"
kMDItemLogicalSize = 975
kMDItemPhysicalSize = 4096
Dalam hal ini saya akan mengubah aplikasi default untuk semua public.plain-text
jenis.
Untuk melakukan ini saya ketik:
defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.plain-text\"; LSHandlerRoleAll = \"com.sublimetext.2\"; }'
Jika saya ingin perubahan diterapkan, saya harus memulai kembali Layanan Peluncuran seperti:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
Dan untuk memberikan kredit di mana kredit jatuh tempo, saya belajar tentang pendekatan ini dari pertanyaan dan jawaban stackoverflow.com ini: /programming/9172226/how-to-set-default-application-for-specific-file -types-in-mac-os-x
checking which SDK to use... configure: error: darwin12.0.0 is not a supported system
.