一個小型便攜式C庫,以處理二進制,XML,JSON或OpenStep格式的Apple屬性列表文件。
該項目提供了一個接口,可以讀取和編寫二進製文件,XML,JSON或OpenStep格式的命令行實用程序,名為plistutil 。
一些關鍵功能是:
plistutil實用程序您需要有一個可用的編譯器(GCC/CLANG)和開發環境。該項目使用自動工具進行構建過程,從而可以在不同平台上具有通用的構建步驟。只有先決條件有所不同,在本節中進行了描述。
安裝所有必需的依賴關係並構建工具:
sudo apt-get install
build-essential
checkinstall
git
autoconf
automake
libtool-bin如果要選擇地構建文檔或Python綁定,請使用:
sudo apt-get install
doxygen
cython3確保安裝了Xcode命令行工具。然後,使用Macports或Homebrew安裝automake , autoconf和libtool 。
使用MacPorts:
sudo port install libtool autoconf automake使用自製:
brew install libtool autoconf automake如果要構建文檔,請使用上面的相應安裝命令安裝doxygen 。
如果要構建Python綁定,則需要安裝Cython:
pip3 install cython如果構建Python綁定失敗,則可能需要設置一些環境變量。例如,通過github操作的自動構建正在設置以下環境變量:
PYTHON3_BIN= ` xcrun -f python3 `
export PYTHON= $PYTHON3_BIN
PYTHON_VER= ` $PYTHON3_BIN -c " import distutils.sysconfig; print(distutils.sysconfig.get_config_var('VERSION')) " `
PYTHON_EXEC_PREFIX= ` $PYTHON3_BIN -c " import distutils.sysconfig; print(distutils.sysconfig.get_config_var('exec_prefix')) " `
PYTHON_LIBS_PATH= $PYTHON_EXEC_PREFIX /lib
PYTHON_FRAMEWORK_PATH= $PYTHON_EXEC_PREFIX /Python3
export PYTHON_LIBS= " -L $PYTHON_LIBS_PATH -lpython $PYTHON_VER "
export PYTHON_EXTRA_LDFLAGS= " -Wl,-stack_size,1000000 -framework CoreFoundation $PYTHON_FRAMEWORK_PATH " 使用MSYS2是在Windows上編譯該項目的官方方法。下載MSYS2安裝程序,然後按照安裝步驟進行操作。
建議使用MSYS2 MINGW 64位外殼。運行它並確保已安裝所需的依賴項:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapper注意:您可以根據需要使用其他外殼和不同的編譯器。相應地調整上述命令。
如果您想選擇地構建Python綁定,則還需要安裝cython並確保您有一個工作的Python環境。
pacman -S cython您可以從GIT結帳中構建源代碼,也可以從.tar.bz2從版本中釋放Tarball。在我們構建它之前,必須將源樹配置為建造。這些步驟取決於您從哪裡獲得的。
來自git
如果您尚未完成,請克隆實際的項目存儲庫並更改為目錄。
git clone https://github.com/libimobiledevice/libplist.git
cd libplist配置用於構建的源樹:
./autogen.sh從釋放tarball(.tar.bz2)
當使用官方釋放tarball( libplist-xyztar.bz2 )時,該過程略有不同。
提取tarball:
tar xjf libplist-x.y.z.tar.bz2
cd libplist-x.y.z配置用於構建的源樹:
./configure ./configure和./autogen.sh (生成和調用configure )都接受一些選項,例如--enable-debug允許在最終產品中打印調試消息,或者--without-cython可以跳過構建Python bindings。您可以像這樣簡單地傳遞它們:
./autogen.sh --prefix=/usr/local --enable-debug --without-cython或者
./configure --prefix=/usr/local --enable-debug命令成功後,輸出的最後幾行將看起來像這樣:
[...]
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Configuration for libplist 2.3.1:
-------------------------------------------
Install prefix ..........: /usr/local
Debug code ..............: yes
Python bindings .........: yes
Now type 'make' to build libplist 2.3.1,
and then 'make install' for installation.
如果您成功遵循所有步驟,並且autogen.sh或configure沒有打印任何錯誤,則可以構建項目。這只是完成
make如果沒有發出錯誤,您就可以安裝了。根據當前用戶是否有權寫入目標目錄,您將運行要么運行
make install或者
sudo make install如果您在Linux上,則需要在安裝後運行sudo ldconfig ,以確保已安裝的庫可用。
用法很簡單; libplist具有直率的API。它用於Libimobiledevice和相應的項目中。
此外,它帶有命令行實用程序plistutil它真的很容易使用:
plistutil -i foobar.plist -o output.plist這將foobar.plist文件轉換為相反的格式,例如二進製文件,反之亦然,然後將其輸出到output.plist文件。
要轉換為特定格式 - 也可以從JSON或OpenStep格式轉換 - 使用-f命令行開關:
plistutil -i input.plist -f json這將input.plist為輸入。代碼自動檢測輸入格式並相應地解析。
請諮詢使用信息或手動頁面以獲取可用命令行選項的完整文檔:
plistutil --help或者
man plistutil我們歡迎任何人的捐款,並感謝每個拉的請求!
如果您想做出貢獻,請分配master分支,更改,提交並發送拉動請求進行審查。批准後,它可以合併到主代碼庫中。
如果您打算貢獻更大的變化或重大重構,請先創建一張票,以預先討論這個想法,以確保每個人的精力減少。
請確保您的貢獻遵循:
該項目是根據GNU較少的通用公共許可證v2.1許可的,該項目也包含在COPYING文件中的存儲庫中。
蘋果,iPhone,iPad,iPod,iPod Touch,Apple TV,Apple Watch,Mac,iOS,iPados,TVOS,WatchOS和MacOS是Apple Inc.的商標。
該項目是一個獨立的軟件庫,尚未獲得Apple Inc.的授權,贊助或以其他方式批准。
README更新:2024-10-22