Binary、XML、JSON、またはOpenStep形式のAppleプロパティリストファイルを処理するための小さなポータブルCライブラリ。
このプロジェクトは、 plistutilという名前のコマンドラインユーティリティとともに、バイナリ、XML、JSON、またはOpenStepフォーマットでPlistファイルを読み書きするためのインターフェイスを提供します。
いくつかの重要な機能は次のとおりです。
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 automakeHomebrewの使用:
brew install libtool autoconf automakeドキュメントを作成する場合は、上から対応するインストールコマンドを使用してdoxygenをインストールします。
Python Bindingsを構築する場合は、Cythonをインストールする必要があります。
pip3 install cythonPythonバインディングの構築が失敗する場合は、いくつかの環境変数を設定する必要がある場合があります。たとえば、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 Bindingsを作成する場合は、 cythonもインストールし、機能するPython環境があることを確認する必要があります。
pacman -S cythonGITチェックアウトからソースコードを構築するか、リリースからターボールをリリースする.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 --without-cython --enable-debugおよび呼び出す)の両方が、たとえば、最終製品にデバッグメッセージを印刷することを許可するためのいくつかのオプションを受け入れます。あなたは単にこのようにそれらを渡すことができます:
./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ブランチ、変更、コミット、およびレビューのプルリクエストを送信してください。承認されると、メインコードベースにマージできます。
より大きな変更または主要なリファクタリングを提供する予定がある場合は、最初にチケットを作成して、すべての人の労力を少なくするためにアイデアを前もって議論してください。
あなたの貢献が次のことを順守することを確認してください
このプロジェクトは、 COPYINGファイルのリポジトリにも含まれているGNU以下の一般的なパブリックライセンスv2.1に基づいてライセンスされています。
Apple、iPhone、iPad、iPod、iPod Touch、Apple TV、Apple Watch、Mac、iOS、iPados、TVOS、WatchOS、およびMacOSはApple Incの商標です。
このプロジェクトは独立したソフトウェアライブラリであり、Apple Inc.によって承認されたり、後援されたり、その他の方法で承認されたりしていません。
README更新:2024-10-22