### 目錄:
0. [準備工作](# "知識準備和軟件準備,準備好了就開始下面的.")
1. [簡介](# "如果你還不太清楚它是什么,從這里開始吧.")
2. [偏好文件(plist文件)](# "偏好文件(plist文件)的內容,都能寫什么.")
3. [編輯plist文件舉例](# "編輯plist文件舉例")
4. 應用實例
5. 深入理解偏好文件
6. 常用工具
7. 問題解決
?
### 準備工作:
- 知識的準備:
熟悉Mac OS X系統中目錄層次的表達方式,也就是說你可以在Finder窗口中, 輕松找到/Library/Preferences目錄.
- 軟件的準備:
安裝Property List Editor程序。如果還沒有,你可以從以下幾個方式找到。
1. 隨機的光盤中,第一張光盤里面的/Optional Installs/Xcode Tools/就有, 運行XcodeTools.mpkg就可以了, 但是不能保證是最新的程序.
1. 到download.csdn.net的[PropertyListEditor](http://download.csdn.net/source/1382942 "Property List Editor")下載, 地址<http://download.csdn.net/source/1382942>. 這個程序是隨10.5.6系統盤的XcodeTools的.
1. Apple的官方網站下載,參見http://developer.apple.com/mac/, 這里下載的肯定是最新的程序.
?
### 簡介:
???在Mac的OS X系統里,你點擊左上角蘋果菜單,里面就有一個叫做System Preferences的選項.在其它的程序中,比如Safari, iPhoto等,點擊該程序名稱菜單,也會看到一個類似的菜單選項:Preferences...。那么什么是Preferences(偏好)呢?
???其實,普遍意義上來說就是一種配置(配置文件,ConfigurationFile)。對于不同的程序和不同的操作系統,它們所支持的配置是以不同方式存儲在系統上的,比如說,PC機的BIOS也是一種計算機硬件的配置,它存儲在計算機的CMOS里; 對于大家熟悉的Windows系統, 系統本身使用Registry的方式存儲系統/用戶/應用程序的配置信息,比如說登陸運行程序/桌面背景等等,都是存儲在那里,Windows系統的Registry是存儲在多個二進制加密的文本文件中的,用于存儲不同的系統/用戶配置信息;而在Mac OS X系統中,采用的是一種文本或二進制XML格式的文件格式,一般來說文件的后綴名是.plist,所以也叫plist文件,比如瀏覽器Safari的默認主頁就是存儲在com.apple.safari.plist文件中的HomePage項中.當然plist文件在Mac OS X中已經不僅僅作為一種配置文件了.
???普通的應用程序也有自己的配置文件,用于存儲程序默認的參數和數據以及用戶自定義/變更的參數,應用程序可以使用操作系統提供的機制,比如Windows的Registry和Mac OSX的plist,當然應用程序開發商可以根據自己的需要或愛好使用別的任何文件格式存儲,比如古老的.ini文本文件等。
???在Mac OSX系統中對plist文件的支持,最開始是使用Text文本格式的,這樣用戶可以使用任意的文本編輯軟件就可以打開編輯。后來為了效率考慮,從10.2開始引入了二進制Binary的格式,這樣可以提高系統讀取速度,而plutil命令行工具就是從這時開始引入的--后面有相關介紹. 而從10.4Tiger系統之后,系統默認的plist文件都是二進制格式的了.
?
### 偏好文件(plist文件):
??? 我們知道了大多數的偏好配置都儲存在plist文件中,那么我們就看看plist文件的樣子.
??? 下面的內容就是一個最簡單的最基本的plist文本文件的內容:
<table id="lnkk" style="width: 100%;" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000"><tbody><tr><td width="100%"><?xml version="1.0" encoding="UTF-8"?><br/><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><br/><plist version="1.0"><br/><dict/><br/></plist><br/></td></tr></tbody></table>
??? 它在Property List Editor中是下圖的樣子:
[](http://docs.google.com/File?id=dfm3jbw9_157c22w9pf3_b)
?
### 編輯plist文件舉例:
??? 可以通過上面提到的Property List Editor程序編輯一個plist文件。首先我們記住:plist文件內容是由一系列的屬性名和對應的值通過一定的順序組合組成的。
??? 下面只是舉一個簡單的例子,通過例子大家可以熟悉plist文件的樹狀結構和支持的數據類型等特性。
???運行Property List Editor程序后,看到的是下圖的內容,在按鈕下面是三列的空表,三列分別是:Peroperty List,Class, Value. 其中Peroperty List就是屬性名稱列表;Class是定義該屬性的類型,plist文件支持好多種類型,這一點后面說;Value就是該屬性的值。
[](http://docs.google.com/File?id=dfm3jbw9_164hbmv834f_b)
??? 首先, 我們需要創建一個根,點擊New Root按鈕, 系統生成一個屬性名叫Root, 類型是Dictionary(字典), Value是一個不可編輯的默認是"0 key/value pairs"的一行.
[](http://docs.google.com/File?id=dfm3jbw9_165ddb5tjdv_b)
???我們用鼠標點擊這個Root. 上面的New Root按鈕變成了New Sibling,但是是灰色禁止的,也就是說plist文件只能由一個Root,它沒有兄弟。為了能在Root下面添加它的子屬性,在Root左邊有一個向右的小三角, 用鼠標點擊它,它變成了向下的三角, 也就是告訴程序,這時上面的New Sibling按鈕就變成的NewChild了,我要編輯/查看它的子屬性。所以對于可以添加子屬性的屬性,一定要首先打開它才能對它編輯,這是以后要用到的。
[](http://docs.google.com/File?id=dfm3jbw9_166gsjkrct2_b)
??? 先面先來建立一個簡單的屬性,點擊New Child,在走邊列給它一個名稱,叫Background, 中間列選String, 也就是一個字符串類型,最右面寫入該屬性的值,比如~/Pictures/Background.jpg.
[](http://docs.google.com/File?id=dfm3jbw9_162hrr5zjc2_b)
???現在Background是選中的,上面的按鈕是“New Sibling”, 點擊它, 并給它Childs的屬性名,點擊類型列,會出現上圖的所支持的所有類型的列表,選擇Array的類型,也就是數組類型,大家知道數組是一個相同屬性的值組成的一列,每個值按照0,1, 2...的順序排列,所以,點擊它左面的三角打開它后,每添加一個它的子屬性,系統會自動為每個子屬性設定一個數字的屬性名,我們分別建立兩個子屬性,每個都是字符串string類型, 值分別是Son, Daughter.
??? 選定Root, 再建立一個子屬性,叫做Country, 屬性是Dictionary, 它的子屬性有三個, 分別是CA, CN, UN,? 數值類型都是數字Number, 值分別是0, 1, 2。
??? 再在Root下面建立一個子屬性,叫做MyData, 屬性是Data, 內容可以自己填寫.
??? 再建立一個Root的子屬性,叫做Today, 屬性是Date, 程序自動填上當天的日期.
??? 最后建立一個Root的子屬性,叫做AmITony, 屬性是布爾Boolean,也就是是否, 默認是Yes。
??? 完成上面的工作后,我們得到的是如下圖的一個plist文件.
[](http://docs.google.com/File?id=dfm3jbw9_169cr3d6fgg_b)
??? 有興趣的可以保存這個plist文件,并用文本編輯器打開,看看里面的結構.
- 前言
- Mac OS X:如何將個人文件夾從默認卷移到其他卷(適合OSX10.5 Leopard)
- Mac OS X:Finder菜單中的Connect to Server選項禁止和打開
- Mac OS X: 蘋果機支持的分區表類型及問題解決
- Mac OS X: 偏好Preferences基礎(1)
- Mac OS X: 如何變更Office for Mac的注冊碼
- Mac OS X: 禁止/防止網絡用戶復制app程序到桌面
- Mac OS X: 用戶帳戶的選擇
- Mac OS X: 實用腳本程序(bash scripts)系列
- Mac OS X: 共享iPhoto圖片
- Mac OS X: 實用腳本程序(bash scripts)系列-2
- Mac OS X: 實用腳本程序(bash scripts)系列-3
- Mac OS X: 實用腳本程序(bash scripts)系列-4
- Mac OS X: 實用腳本程序(bash scripts)系列-5
- Mac OS X: 實用腳本程序(bash scripts)系列-6
- Mac OS X:升級rsync和同步應用實例
- Mac OS X: XAMP在Mac上的實現
- Mac OS X瘦身多法
- Mac OS X 10.5快速系統部署實踐-計劃(2) v1
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(1) v1
- Mac OS X數據備份方案一例
- Mac OS X數據備份方案一例(2)
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(2) v1
- Mac OS X: 打印系統治療
- Mac OS X:禁止崩潰報告
- Mac OS X:Snow Leopard的幾個改動(管理員相關)
- Mac OS X排錯:雪豹的最新更新Airport可能不支持無線802.11n網絡
- Mac OS X:雪豹內置支持讀寫NTFS卷
- Mac OS X:定制生成新用戶的程序包
- Mac OS X:在Windows里面使用命令行設置啟動系統
- Mac OS X: 實用腳本程序(bash scripts)系列-7
- Mac OS X:一種從APP中獲得PKG的方法
- Mac OS X: bash腳本實現添加無線SSID(Update2009-10-09)
- Mac OS X: 實用腳本程序(bash scripts)系列-8
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(4) v1
- Mac OS X: 徹底刪除GeekTool(bash腳本)
- Mac OS X: 實用腳本程序(bash scripts)系列-9
- 把你的Leopard變成Mac OS X的系統發布服務器(1)
- 把你的Leopard變成Mac OS X的系統發布服務器(2)
- 把你的Leopard變成Mac OS X的系統發布服務器(3)
- Mac OS X: 訪問控制遠程CUPS服務
- Mac &amp; Win混合平臺訪問和工具
- Mac OS X: DeployStudio更新v1.0rc16
- Mac: 想當Apple菜鳥不容易(1)
- Mac: 想當 Apple菜鳥不容易(2)
- Mac: 想當 Apple菜鳥不容易(3)
- Mac: 想當 Apple菜鳥不容易(4完)
- Mac電腦上處理攝像機上的存儲內容
- Mac OS X: Google自動更新程序的卸載
- 雪豹系統和SMB不兼容的問題的解決匯總
- Mac OS X: 實用腳本程序(bash scripts)系列-10
- Mac OS X:MagicPrefs介紹
- Mac OS X: 系統部署后程序安裝的用戶提示
- Mac OS X:開啟單程序模式
- Mac OS X: 在腳本里關閉Airport
- Mac筆記本電池:十點建議和其它
- Mac OS X: Launchd執行程序的一個例子
- Mac OS X:修改SMART Utility期限限制
- Mac OS X:網絡用戶環境個性配置實例
- Mac OS X:強制退出CD/DVD盤
- Mac OS X: launchd plist在線編輯器
- Mac OS X: 實用腳本程序(bash scripts)系列-11
- Mac OS X: 實用腳本程序(bash scripts)系列-12
- Mac: 卸載Safari 5.0.2
- Mac OS X: 實用腳本程序(bash scripts)系列-13
- Mac OS X: 文件圖標制作和變更(Resource Fork)
- Mac OS X 10.6.6更新之后NTFS只讀的解決
- Mac: 網絡用戶遇到Adobe Reader 9.x/10.x異常退出的解決
- Mac OS X: airport命令的參數
- Mac OS X的Spotlight綜述
- Mac OS X:AFP和SMB共享配置詳細配置
- Mac OS X:詳細解讀Munki和應用
- Mac OS X:顯示/設置分辨率的命令(源程序)
- Mac OS X: 是否升級到Lion?
- OSX: 禁止Flash Player 10.3自動更新
- OSX腳本:禁止系統自動添加AppStore圖標到用戶Dock上
- 獅子GM版本的安裝
- OS X Lion獅子安裝盤的初步研究
- OS X Lion獅子的恢復盤的刪除二法
- OSX: Finder的側邊欄(Sidebar)不顯示已裝載的網絡共享
- OSX:隱藏文件或文件夾
- OS X: 實用腳本程序(bash scripts)系列-13
- OS X: 實用腳本程序(bash scripts)系列-14
- OSX:Lion支持登錄窗口的Policy Banner
- OSX: 讓獅子說中文