Uma pequena biblioteca C portátil para lidar com os arquivos da lista de propriedades da Apple no formato binário, XML, JSON ou OpenStep.
O projeto fornece uma interface para ler e gravar arquivos Plist no formato binário, XML, JSON ou OpenStep, juntamente com um utilitário de linha de comando chamado plistutil .
Alguns recursos importantes são:
plistutil para a linha de comandoVocê precisa ter um compilador de trabalho (gcc/clang) e um ambiente de desenvolvimento disponível. Este projeto usa o AutoTools para o processo de construção, permitindo ter etapas de construção comuns em diferentes plataformas. Somente os pré -requisitos diferem e são descritos nesta seção.
Instale todas as dependências necessárias e construa ferramentas:
sudo apt-get install
build-essential
checkinstall
git
autoconf
automake
libtool-binSe você deseja criar opcionalmente a documentação ou o uso de ligações python:
sudo apt-get install
doxygen
cython3 Verifique se as ferramentas da linha de comando Xcode estão instaladas. Em seguida, use Macports ou Homebrew para instalar automake , autoconf e libtool .
Usando Macports:
sudo port install libtool autoconf automakeUsando homebrew:
brew install libtool autoconf automake Caso você queira criar a documentação, instale doxygen usando o comando de instalação correspondente acima.
Se você deseja criar ligações em Python, precisa instalar o Cython:
pip3 install cythonPode ser necessário definir algumas variáveis de ambiente se a construção das ligações do Python falhar. Por exemplo, a compilação automatizada por meio de ações do GitHub está definindo as seguintes variáveis de ambiente:
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 " O uso do MSYS2 é a maneira oficial de compilar este projeto no Windows. Faça o download do instalador do MSYS2 e siga as etapas de instalação.
Recomenda-se usar o shell MSYS2 Mingw de 64 bits . Execute -o e verifique se as dependências necessárias estão instaladas:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapperNota: Você pode usar um shell diferente e um compilador diferente de acordo com suas necessidades. Adapte o comando acima de acordo.
Se você deseja, opcionalmente, criar ligações em Python, também é necessário instalar cython e verifique se possui um ambiente Python em funcionamento.
pacman -S cython Você pode construir o código -fonte a partir de uma finalização do git ou a partir de um Tarball de liberação .tar.bz2 a partir de lançamentos. Antes que possamos construí -lo, a árvore de origem deve ser configurada para a construção. As etapas dependem de onde você tirou a fonte.
De git
Se você ainda não fez, clone o repositório real do projeto e mude no diretório.
git clone https://github.com/libimobiledevice/libplist.git
cd libplistConfigure a árvore de origem para a construção:
./autogen.shDo lançamento Tarball (.tar.bz2)
Ao usar um Tarball de liberação oficial ( libplist-xyztar.bz2 ), o procedimento é um pouco diferente.
Extraia o tarball:
tar xjf libplist-x.y.z.tar.bz2
cd libplist-x.y.zConfigure a árvore de origem para a construção:
./configure Tanto ./configure quanto ./autogen.sh (que gera e chamadas configure ) aceitam algumas opções, por exemplo --enable-debug para permitir a impressão de mensagens de depuração no produto final, ou --without-cython para pular a construção das ligações do Python. Você pode simplesmente passá -los assim:
./autogen.sh --prefix=/usr/local --enable-debug --without-cythonou
./configure --prefix=/usr/local --enable-debugQuando o comando for bem -sucedido, as últimas linhas de saída ficarão assim:
[...]
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.
Se você seguiu todas as etapas com sucesso e autogen.sh ou configure não imprimiram nenhum erro, estará pronto para construir o projeto. Isso é simplesmente feito com
makeSe nenhum erro for emitido, você estará pronto para a instalação. Dependendo se o usuário atual tem permissões para escrever no diretório de destino ou não, você executaria
make installOU
sudo make install Se você estiver no Linux, deseja executar sudo ldconfig após a instalação para garantir que as bibliotecas instaladas sejam disponibilizadas.
O uso é simples; libplist tem uma API direta. É usado no Libimobilevice e em projetos correspondentes.
Além disso, ele vem com um utilitário de linha de comando plistutil que é realmente fácil de usar:
plistutil -i foobar.plist -o output.plist Isso converte o arquivo foobar.plist no formato oposto, por exemplo, binário em xml ou vice -versa, e o produz para o arquivo output.plist .
Para converter em um formato específico - e também para converter do formato JSON ou OpenStep - use o interruptor da linha de comando -f :
plistutil -i input.plist -f json Isso converterá input.plist , independentemente do formato de entrada, em JSON. O código detecta automaticamente o formato de entrada e o analisa de acordo.
Consulte as informações de uso ou a página manual para obter uma documentação completa das opções de linha de comando disponíveis:
plistutil --helpou
man plistutilCongratulamo -nos com contribuições de qualquer pessoa e agradecemos todas as solicitações de tração!
Se você quiser contribuir, bifurque a filial master , altere, comprometa e envie uma solicitação de revisão. Uma vez aprovado, ele pode ser mesclado na base de código principal.
Se você planeja contribuir com alterações maiores ou uma grande refatoração, crie um ingresso primeiro para discutir a idéia adiantada para garantir menos esforço para todos.
Por favor, verifique se sua contribuição adere a:
Este projeto está licenciado sob a licença pública geral da GNU em geral v2.1, também incluída no repositório no arquivo COPYING .
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, TvOS, WatchOS e MacOS são marcas comerciais da Apple Inc.
Este projeto é uma biblioteca de software independente e não foi autorizada, patrocinada ou aprovada pela Apple Inc.
Readme atualizado em: 2024-10-22