PlistBuddy

PlistBuddy

介紹

Mac 中,plist 是一種常見的文件格式,在 iOS 開發過程中,也經常用到 plist 文件,類似 xml,通過使用鍵值對的方式來進行配置,PlistBuddyMac 自帶的專門解析 plist 的工具。

使用

由于 PlistBuddy 并未在 Mac 中默認配置,所以需要通過絕對路徑來引用,PlistBuddy的路徑所在:

/usr/libexec/PlistBuddy

查看幫助

/usr/libexec/PlistBuddy --help

Command Format:
    Help - Prints this information
    Exit - Exits the program, changes are not saved to the file
    Save - Saves the current changes to the file
    Revert - Reloads the last saved version of the file
    Clear [<Type>] - Clears out all existing entries, and creates root of Type
    Print [<Entry>] - Prints value of Entry.  Otherwise, prints file
    Set <Entry> <Value> - Sets the value at Entry to Value
    Add <Entry> <Type> [<Value>] - Adds Entry to the plist, with value Value
    Copy <EntrySrc> <EntryDst> - Copies the EntrySrc property to EntryDst
    Delete <Entry> - Deletes Entry from the plist
    Merge <file.plist> [<Entry>] - Adds the contents of file.plist to Entry
    Import <Entry> <file> - Creates or sets Entry the contents of file

Entry Format:
    Entries consist of property key names delimited by colons.  Array items
    are specified by a zero-based integer index.  Examples:
        :CFBundleShortVersionString
        :CFBundleDocumentTypes:2:CFBundleTypeExtensions

Types:
    string
    array
    dict
    bool
    real
    integer
    date
    data

Examples:
    Set :CFBundleIdentifier com.apple.plistbuddy
        Sets the CFBundleIdentifier property to com.apple.plistbuddy
    Add :CFBundleGetInfoString string "App version 1.0.1"
        Adds the CFBundleGetInfoString property to the plist
    Add :CFBundleDocumentTypes: dict
        Adds a new item of type dict to the CFBundleDocumentTypes array
    Add :CFBundleDocumentTypes:0 dict
        Adds the new item to the beginning of the array
    Delete :CFBundleDocumentTypes:0 dict
        Deletes the FIRST item in the array
    Delete :CFBundleDocumentTypes
        Deletes the ENTIRE CFBundleDocumentTypes array

從輸出的信息,就大概能知道 PlistBuddy 有哪些指令,值的類型有哪些,怎么去使用。

下面就舉幾個例子,利用 PlistBuddyPlist 文件進行操作。

創建一個 test.plist 文件

Xcode → File → New → File → Property List → Next → Create

此時創建了一個空的 plist 文件,終端打開當前目錄

添加內容

添加普通內容

/usr/libexec/PlistBuddy -c "Add :Name string Tome" test.plist
image

添加一個數組

// 添加一個 Names 數組
/usr/libexec/PlistBuddy -c "Add :Names array" test.plist
// 添加兩個元素到 Names 數組中
/usr/libexec/PlistBuddy -c "Add :Names: string Jack" test.plist
/usr/libexec/PlistBuddy -c "Add :Names: string Tome" test.plist
image

如果再次添加一個 Names 數組到 plist 文件中,會報錯添加失敗,提示該數組已存在

20191216103840.png

修改內容

/usr/libexec/PlistBuddy -c "Set Name Jack" test.plist

將剛才 Name 的內容 Tome 修改成 Jack

image

根據 Key 獲取內容

/usr/libexec/PlistBuddy -c "Print Name" test.plist
image

根據 Key 刪除內容

首選先添加一個 test key,然后設置內容 測試刪除

/usr/libexec/PlistBuddy -c "Add :test string 測試刪除" test.plist
image

緊接著刪除這個test

/usr/libexec/PlistBuddy -c "Delete test" test.plist
image

添加字典

plist 文件中添加 test 字典,并且添加兩個元素 ageheight 進去

// 添加一個字典到 `plist` 文件中
/usr/libexec/PlistBuddy -c "Add :test dict" test.plist
// 添加一個 `height` , 內容 `20` 的 `int`
/usr/libexec/PlistBuddy -c "Add :test:height integer 20" test.plist
// 添加一個 `age`, 內容 `30` 的 `int`
/usr/libexec/PlistBuddy -c "Add :test:age integer 30" test.plist

以上就是利用 PlistBuddyplist 文件的一些操作.利用這個我們可以對 Xcode 工程 project.pbxproj 進行修改。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。