Perpustakaan C portabel kecil untuk menangani file daftar properti Apple dalam format Binary, XML, JSON, atau OpenStep.
Proyek ini menyediakan antarmuka untuk membaca dan menulis file plist dalam format Binary, XML, JSON, atau OpenStep di samping utilitas baris perintah bernama plistutil .
Beberapa fitur utama adalah:
plistutil untuk baris perintahAnda perlu memiliki kompiler kerja (GCC/Clang) dan lingkungan pengembangan yang tersedia. Proyek ini menggunakan AutoTools untuk proses pembangunan, memungkinkan untuk memiliki langkah -langkah pembuatan yang sama di berbagai platform. Hanya prasyarat yang berbeda dan mereka dijelaskan dalam bagian ini.
Instal semua dependensi yang diperlukan dan membangun alat:
sudo apt-get install
build-essential
checkinstall
git
autoconf
automake
libtool-binJika Anda ingin secara opsional membangun dokumentasi atau binding Python, gunakan:
sudo apt-get install
doxygen
cython3 Pastikan alat baris perintah XCODE diinstal. Kemudian, gunakan MacPorts atau Homebrew untuk menginstal automake , autoconf , dan libtool .
Menggunakan MacPorts:
sudo port install libtool autoconf automakeMenggunakan Homebrew:
brew install libtool autoconf automake Jika Anda ingin membangun dokumentasi, instal doxygen menggunakan perintah instalasi yang sesuai dari atas.
Jika Anda ingin membangun binding python, Anda harus menginstal Cython:
pip3 install cythonAnda mungkin perlu mengatur beberapa variabel lingkungan jika membangun binding ularin gagal. Misalnya, build otomatis melalui tindakan GitHub adalah mengatur variabel lingkungan berikut:
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 " Menggunakan MSYS2 adalah cara resmi untuk menyusun proyek ini di Windows. Unduh penginstal MSYS2 dan ikuti langkah -langkah instalasi.
Dianjurkan untuk menggunakan shell msys2 mingw 64-bit . Jalankan dan pastikan dependensi yang diperlukan diinstal:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapperCatatan: Anda dapat menggunakan shell yang berbeda dan kompiler yang berbeda sesuai dengan kebutuhan Anda. Menyesuaikan perintah di atas sesuai.
Jika Anda ingin membangun binding python secara opsional, Anda juga harus menginstal cython dan memastikan Anda memiliki lingkungan Python yang berfungsi.
pacman -S cython Anda dapat membangun kode sumber dari checkout git, atau dari rilis rilis .tar.bz2 dari rilis. Sebelum kita dapat membangunnya, pohon sumber harus dikonfigurasi untuk dibangun. Langkah -langkahnya tergantung pada dari mana Anda mendapatkan sumbernya.
Dari git
Jika Anda belum melakukannya, mengkloning repositori proyek yang sebenarnya dan berubah menjadi direktori.
git clone https://github.com/libimobiledevice/libplist.git
cd libplistKonfigurasikan pohon sumber untuk membangun:
./autogen.shDari Release Tarball (.tar.bz2)
Saat menggunakan rilis resmi Tarball ( libplist-xyztar.bz2 ) prosedurnya sedikit berbeda.
Ekstrak tarball:
tar xjf libplist-x.y.z.tar.bz2
cd libplist-x.y.zKonfigurasikan pohon sumber untuk membangun:
./configure Keduanya ./configure dan ./autogen.sh (yang menghasilkan dan panggilan configure ) menerima beberapa opsi, misalnya --enable-debug untuk memungkinkan pencetakan pesan debug dalam produk akhir, atau --without-cython untuk melewatkan membangun binding python. Anda bisa meneruskannya seperti ini:
./autogen.sh --prefix=/usr/local --enable-debug --without-cythonatau
./configure --prefix=/usr/local --enable-debugSetelah perintah berhasil, beberapa baris output terakhir akan terlihat seperti ini:
[...]
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.
Jika Anda mengikuti semua langkah dengan sukses, dan autogen.sh atau configure tidak mencetak kesalahan apa pun, Anda siap untuk membangun proyek. Ini hanya dilakukan dengan
makeJika tidak ada kesalahan yang dipancarkan, Anda siap untuk diinstal. Bergantung pada apakah pengguna saat ini memiliki izin untuk menulis ke direktori tujuan atau tidak, Anda akan menjalankan
make installATAU
sudo make install Jika Anda berada di Linux, Anda ingin menjalankan sudo ldconfig setelah instalasi untuk memastikan pustaka yang diinstal tersedia.
Penggunaannya sederhana; libplist memiliki API lurus-maju. Ini digunakan dalam LibimobiledEvice dan proyek yang sesuai.
Selain itu, ia hadir dengan plistutil Utilitas Baris Perintah yang sangat mudah digunakan:
plistutil -i foobar.plist -o output.plist Ini mengonversi file foobar.plist ke format yang berlawanan, misalnya biner ke XML atau sebaliknya, dan mengeluarkannya ke file output.plist .
Untuk mengonversi ke format tertentu - dan juga untuk mengonversi dari format JSON atau OpenStep - Gunakan sakelar baris perintah -f :
plistutil -i input.plist -f json Ini akan mengonversi input.plist , terlepas dari format input, ke JSON. Kode secara otomatis mendeteksi format input dan menguraikannya.
Silakan berkonsultasi dengan informasi penggunaan atau halaman manual untuk dokumentasi lengkap opsi baris perintah yang tersedia:
plistutil --helpatau
man plistutilKami menyambut kontribusi dari siapa pun dan berterima kasih atas setiap permintaan tarik!
Jika Anda ingin berkontribusi, silakan garpu cabang master , ubah, komit dan kirim permintaan tarik untuk ditinjau. Setelah disetujui dapat digabungkan ke basis kode utama.
Jika Anda berencana untuk menyumbangkan perubahan yang lebih besar atau refactoring besar, silakan buat tiket terlebih dahulu untuk membahas ide di muka untuk memastikan lebih sedikit upaya bagi semua orang.
Pastikan kontribusi Anda menganut:
Proyek ini dilisensikan di bawah GNU Lesser General Public License v2.1, juga termasuk dalam repositori dalam file COPYING .
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, TVOS, WatchOS, dan MacOS adalah merek dagang dari Apple Inc.
Proyek ini adalah perpustakaan perangkat lunak independen dan belum diizinkan, disponsori, atau disetujui oleh Apple Inc.
ReadMe Diperbarui pada: 2024-10-22