Небольшая портативная библиотека C для обработки файлов списков свойств Apple в формате Binary, XML, JSON или OpenStep.
Проект предоставляет интерфейс для чтения и записи файлов PLIST в бинарном, XML, JSON или формате OpenStep вместе с утилитой командной строки с именем plistutil .
Некоторые ключевые функции:
plistutil для командной линииВы должны иметь работающий компилятор (GCC/Clang) и среда разработки. Этот проект использует AutoTools для процесса сборки, позволяя иметь общие шаги сборки на разных платформах. Только предпосылки различаются, и они описаны в этом разделе.
Установите все необходимые зависимости и инструменты сборки:
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Использование Homebrew:
brew install libtool autoconf automake Если вы хотите создать документацию, установите doxygen используя соответствующую команду установки свыше.
Если вы хотите создать привязки Python, вам нужно установить цинтон:
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 и выполните шаги установки.
Рекомендуется использовать 64-битную оболочку MSYS2 Mingw Mingw . Запустите его и убедитесь, что необходимые зависимости установлены:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapperПримечание. Вы можете использовать другую оболочку и другой компилятор в соответствии с вашими потребностями. Адаптируйте вышеупомянутую команду соответственно.
Если вы хотите, чтобы опционально создать привязки Python, вам также необходимо установить cython и убедиться, что у вас есть рабочая среда Python.
pacman -S cython Вы можете построить исходный код из оформления GIT или из выпуска Tarball .tar.bz2 из выпусков. Прежде чем мы сможем его построить, дерево источника должно быть настроено для построения. Шаги зависят от того, откуда вы получили источник.
От git
Если вы еще не сделали, клонируйте фактический репозиторий проекта и измените в каталог.
git clone https://github.com/libimobiledevice/libplist.git
cd libplistНастройте исходное дерево для строительства:
./autogen.shИз выпуска Tarball (.tar.bz2)
При использовании официального выпуска Tarball ( libplist-xyztar.bz2 ) процедура немного отличается.
Извлеките тарбол:
tar xjf libplist-x.y.z.tar.bz2
cd libplist-x.y.zНастройте исходное дерево для строительства:
./configure configure ./autogen.sh ./configure --enable-debug --without-cython Вы можете просто передавать их так:
./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 в противоположный формат, например, двоичный в XML или наоборот, и выводит его в файл output.plist .
Чтобы преобразовать в конкретный формат - а также для преобразования из формата JSON или OpenStep - используйте коммутатор командной строки -f :
plistutil -i input.plist -f json Это преобразует input.plist , независимо от входного формата, в JSON. Код автоматически определяет входной формат и анализирует его соответственно.
Пожалуйста, проконсультируйтесь с информацией об использовании или странице руководства для полной документации с доступными параметрами командной строки:
plistutil --helpили
man plistutilМы приветствуем взносы от всех и благодарны за каждый запрос на привлечение!
Если вы хотите внести свой вклад, пожалуйста, разделите master филиал, измените, совершайте и отправьте запрос на просмотр. После одобрения он может быть объединен в основную кодовую базу.
Если вы планируете внести вклад в большие изменения или крупный рефакторинг, сначала создайте билет, чтобы обсудить эту идею заранее, чтобы обеспечить меньше усилий для всех.
Пожалуйста, убедитесь, что ваш вклад придерживается:
Этот проект лицензирован в рамках GNU Lesser General Public Public License v2.1, также включенной в хранилище в файле COPYING .
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, TVOS, WatchOS и MacOS являются товарными знаками Apple Inc.
Этот проект является независимой библиотекой программного обеспечения и не был авторизован, спонсируется или не одобрен Apple Inc.
Readme обновлена: 2024-10-22