Une petite bibliothèque C portable pour gérer les fichiers de liste de propriétés Apple au format binaire, XML, JSON ou OpenStep.
Le projet fournit une interface pour lire et écrire des fichiers PLIST au format binaire, XML, JSON ou OpenStep aux côtés d'un utilitaire de ligne de commande nommé plistutil .
Certaines fonctionnalités clés sont:
plistutil pour la ligne de commandeVous devez avoir un compilateur de travail (GCC / Clang) et un environnement de développement disponible. Ce projet utilise les AutoTools pour le processus de construction, permettant d'avoir des étapes de construction courantes sur différentes plates-formes. Seules les conditions préalables diffèrent et elles sont décrites dans cette section.
Installez toutes les dépendances et outils de construction requis:
sudo apt-get install
build-essential
checkinstall
git
autoconf
automake
libtool-binSi vous souhaitez éventuellement créer la documentation ou les liaisons Python Utiliser:
sudo apt-get install
doxygen
cython3 Assurez-vous que les outils de ligne de commande Xcode sont installés. Ensuite, utilisez Macports ou Homebrew pour installer automake , autoconf et libtool .
Utilisation de Macports:
sudo port install libtool autoconf automakeUtilisation de Homebrew:
brew install libtool autoconf automake Dans le cas où vous souhaitez construire la documentation, installez doxygen à l'aide de la commande d'installation correspondante d'en haut.
Si vous souhaitez créer des liaisons Python, vous devez installer Cython:
pip3 install cythonVous devrez peut-être définir quelques variables d'environnement si la construction des liaisons Python échoue. Par exemple, la construction automatisée via des actions GitHub définit les variables d'environnement suivantes:
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 " L'utilisation de MSYS2 est le moyen officiel de compiler ce projet sur Windows. Téléchargez l'installateur MSYS2 et suivez les étapes d'installation.
Il est recommandé d'utiliser la coque MSYS2 Mingw 64 bits . Exécutez-le et assurez-vous que les dépendances requises sont installées:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapperRemarque: vous pouvez utiliser un shell différent et un compilateur différent en fonction de vos besoins. Adaptez la commande ci-dessus en conséquence.
Si vous souhaitez éventuellement créer des liaisons Python, vous devez également installer cython et vous assurer d'avoir un environnement Python fonctionnel.
pacman -S cython Vous pouvez construire le code source à partir d'une caisse GIT ou à partir d'un tarball de libération .tar.bz2 à partir des versions. Avant de pouvoir le construire, l'arbre source doit être configuré pour la construction. Les étapes dépendent de l'où vous avez obtenu la source.
De Git
Si vous ne l'avez pas déjà fait, clonez le référentiel de projet et transformez en répertoire.
git clone https://github.com/libimobiledevice/libplist.git
cd libplistConfigurer l'arborescence source pour la construction:
./autogen.shDe la sortie du tarball (.tar.bz2)
Lorsque vous utilisez un tarball officiel ( libplist-xyztar.bz2 ), la procédure est légèrement différente.
Extraire le tarball:
tar xjf libplist-x.y.z.tar.bz2
cd libplist-x.y.zConfigurer l'arborescence source pour la construction:
./configure Les deux ./configure et ./autogen.sh (qui génère et les appels configure ) acceptent quelques options, par exemple --enable-debug de permettre d'imprimer les messages de débogage dans le produit final, ou --without-cython pour sauter la construction des liaisons Python. Vous pouvez simplement les passer comme ceci:
./autogen.sh --prefix=/usr/local --enable-debug --without-cythonou
./configure --prefix=/usr/local --enable-debugUne fois la commande réussie, les dernières lignes de sortie ressembleront à ceci:
[...]
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 vous avez suivi toutes les étapes avec succès et que autogen.sh ou configure n'imprime aucune erreur, vous êtes prêt à construire le projet. Cela se fait simplement avec
makeSi aucune erreur n'est émise, vous êtes prêt pour l'installation. Selon que l'utilisateur actuel ait des autorisations pour écrire dans le répertoire de destination ou non, vous exécuteriez soit
make installOU
sudo make install Si vous êtes sur Linux, vous souhaitez exécuter sudo ldconfig après l'installation pour vous assurer que les bibliothèques installées sont mises à disposition.
L'utilisation est simple; libplist a une API directe. Il est utilisé dans LibimobileDevice et des projets correspondants.
De plus, il est livré avec un plistutil utilitaire de ligne de commande qui est vraiment facile à utiliser:
plistutil -i foobar.plist -o output.plist Cela convertit le fichier foobar.plist au format opposé, par exemple binaire en xml ou vice versa, et le diffuse dans le fichier output.plist .
Pour convertir en un format spécifique - et également pour convertir à partir du format JSON ou OpenStep - utilisez le commutateur de ligne de commande -f :
plistutil -i input.plist -f json Cela convertira input.plist , quel que soit le format d'entrée, en JSON. Le code détecte automatiquement le format d'entrée et l'analyse en conséquence.
Veuillez consulter les informations d'utilisation ou la page manuelle pour une documentation complète des options de ligne de commande disponibles:
plistutil --helpou
man plistutilNous accueillons les contributions de quiconque et sommes reconnaissants pour chaque demande de traction!
Si vous souhaitez contribuer, veuillez débarquer la branche master , modifier, commettre et envoyer une demande de révision. Une fois approuvé, il peut être fusionné dans la base de code principale.
Si vous prévoyez de contribuer des changements plus importants ou un refactorisation majeure, veuillez d'abord créer un billet pour discuter de l'idée d'avance pour assurer moins d'efforts pour tout le monde.
Veuillez vous assurer que votre contribution adhère à:
Ce projet est concédé sous licence en vertu de la licence publique générale de GNU Leser V2.1, également incluse dans le référentiel dans le fichier COPYING .
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, TVOS, Watchos et MacOS sont des marques d'Apple Inc.
Ce projet est une bibliothèque de logiciels indépendante et n'a pas été autorisé, parrainé ou approuvé par Apple Inc.
Readme mis à jour le: 2024-10-22