Una pequeña biblioteca C portátil para manejar archivos de la lista de propiedades de Apple en formato binario, XML, JSON o OpenStep.
El proyecto proporciona una interfaz para leer y escribir archivos PLIST en formato binario, XML, JSON o OpenStep junto con una utilidad de línea de comandos llamado plistutil .
Algunas características clave son:
plistutil para la línea de comandosDebe tener un compilador de trabajo (GCC/CLANG) y un entorno de desarrollo disponible. Este proyecto utiliza AutoTools para el proceso de compilación, lo que permite tener pasos de compilación comunes en diferentes plataformas. Solo los requisitos previos difieren y se describen en esta sección.
Instale todas las dependencias requeridas y las herramientas de compilación:
sudo apt-get install
build-essential
checkinstall
git
autoconf
automake
libtool-binSi desea construir opcionalmente la documentación o el uso de enlaces de Python:
sudo apt-get install
doxygen
cython3 Asegúrese de que se instalen las herramientas de línea de comando Xcode. Luego, use MacPorts o Homebrew para instalar automake , autoconf y libtool .
Uso de MacPorts:
sudo port install libtool autoconf automakeUsando Homebrew:
brew install libtool autoconf automake En caso de que desee crear la documentación, instale doxygen utilizando el comando de instalación correspondiente desde arriba.
Si desea construir enlaces de Python, debe instalar Cython:
pip3 install cythonEs posible que deba establecer algunas variables de entorno si la construcción de las enlaces de Python fallan. Por ejemplo, la compilación automatizada a través de las acciones de GitHub está configurando las siguientes variables de entorno:
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 " El uso de MSYS2 es la forma oficial de compilar este proyecto en Windows. Descargue el instalador MSYS2 y siga los pasos de instalación.
Se recomienda utilizar la carcasa MSYS2 MINGW de 64 bits . Ejecutarlo y asegúrese de que se instalen las dependencias requeridas:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapperNota: Puede usar un caparazón diferente y un compilador diferente de acuerdo con sus necesidades. Adaptar el comando anterior en consecuencia.
Si desea construir enlaces de Python opcionalmente, también debe instalar cython y asegurarse de tener un entorno Python que funcione.
pacman -S cython Puede construir el código fuente a partir de un pago GIT, o a partir de un tarball .tar.bz2 de lanzamiento a partir de lanzamientos. Antes de que podamos construirlo, el árbol de origen debe configurarse para la construcción. Los pasos dependen de dónde obtuviste la fuente.
De Git
Si aún no lo ha hecho, clone el repositorio real del proyecto y cambie en el directorio.
git clone https://github.com/libimobiledevice/libplist.git
cd libplistConfigure el árbol de origen para la construcción:
./autogen.shDe lanzar tarball (.tar.bz2)
Al usar una liberación oficial de tarball ( libplist-xyztar.bz2 ), el procedimiento es ligeramente diferente.
Extraer el tarball:
tar xjf libplist-x.y.z.tar.bz2
cd libplist-x.y.zConfigure el árbol de origen para la construcción:
./configure Tanto ./configure y ./autogen.sh (que genera y llaman a configure ) aceptan algunas opciones, por ejemplo, --enable-debug para permitir la impresión de mensajes de depuración en el producto final, o --without-cython para omitir la construcción de la construcción de los enlaces de Python. Simplemente puede pasarlos así:
./autogen.sh --prefix=/usr/local --enable-debug --without-cythono
./configure --prefix=/usr/local --enable-debugUna vez que el comando sea exitoso, las últimas líneas de salida se verán así:
[...]
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.
Si siguió todos los pasos con éxito, y autogen.sh o configure no imprimió ningún error, está listo para construir el proyecto. Esto simplemente se hace con
makeSi no se emiten errores, está listo para la instalación. Dependiendo de si el usuario actual tiene permisos para escribir en el directorio de destino o no, se ejecutaría
make installO
sudo make install Si está en Linux, desea ejecutar sudo ldconfig después de la instalación para asegurarse de que las bibliotecas instaladas estén disponibles.
El uso es simple; libplist tiene una API directa. Se usa en LibimobileDevice y los proyectos correspondientes.
Además, viene con una utilidad de línea de comandos plistutil que es realmente fácil de usar:
plistutil -i foobar.plist -o output.plist Esto convierte el archivo foobar.plist en formato opuesto, por ejemplo, binario a XML o viceversa, y lo lleva al archivo output.plist .
Para convertir a un formato específico, y también para convertir desde JSON o Formato OpenStep, use el interruptor de línea de comandos -f :
plistutil -i input.plist -f json Esto convertirá input.plist , independientemente del formato de entrada, a JSON. El código se detecta automáticamente el formato de entrada y lo analiza en consecuencia.
Consulte la información de uso o la página manual para obtener una documentación completa de las opciones de línea de comandos disponibles:
plistutil --helpo
man plistutil¡Damos la bienvenida a las contribuciones de cualquier persona y estamos agradecidos por cada solicitud de atracción!
Si desea contribuir, bifurca la rama master , cambie, comete y envíe una solicitud de extracción de revisión. Una vez aprobado, se puede fusionar en la base del código principal.
Si planea contribuir con cambios más grandes o una refactorización importante, cree un boleto primero para discutir la idea por adelantado para garantizar menos esfuerzo para todos.
Asegúrese de que su contribución se adhiera a:
Este proyecto tiene licencia bajo la Licencia Pública General General de GNU V2.1, también incluido en el repositorio en el archivo COPYING .
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, tvos, watchos y macOS son marcas comerciales de Apple Inc.
Este proyecto es una biblioteca de software independiente y no ha sido autorizado, patrocinado o aprobado de otra manera por Apple Inc.
Readme actualizado en: 2024-10-22