一个小型便携式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