В настоящее время я настраиваю несколько клиентов и серверов OS X, и мне часто приходится открывать / редактировать файлы .plist. Раздражающе OS X компилирует эти файлы plist в двоичный формат, предположительно, чтобы ускорить их чтение из соображений производительности, и это здорово, за исключением того, что мне нужно преобразовывать их обратно в xml каждый раз, когда мне нужно их открывать, что для меня важнее, чем незначительный повышение производительности.
Так что мне нужно либо:
plutil -convert xml1 file.plist
- это PITA.Есть ли способ остановить OS X от преобразования хороших XML-файлов в двоичный формат Devils?
Я думаю, что формат файла списка свойств полностью определяется программой, которая создает / обновляет файл. В Методы сериализации списка свойств какао и те из Core Foundation все имеют параметр формата, который позволяет программе указывать либо «XML», либо «двоичный»; нет такого значения, как «использовать какое-либо заданное извне значение по умолчанию». Программы, вероятно, могли бы самостоятельно выполнить настройку по умолчанию на основе некоторой централизованной настройки, но я не знаю ни одной такой настройки (конечно, она может быть просто недокументирована; дело в том, что она по-прежнему будет ограничена только приложениями, которые приняли такое «руководство» невыполнение обязательств »).
PlistBuddy - это гибкий редактор списка свойств, который в основном поддерживает скрипты (например, значения по умолчанию будет получать доступ / изменять значения только на «верхнем уровне» списка свойств, но PlistBuddy может получить доступ / изменить значения на любой произвольной глубине). Он доступен на /usr/libexec/PlistBuddy
10.5 и новее. Он не входил в комплект поставки 10.4, но обычно его можно найти как один из /Library/Receipts/*/Contents/Resources/PlistBuddy
(например. /Library/Receipts/iTunesX.pkg/Contents/Resources/PlistBuddy
).
Например.
проверить файл списка свойств
PlistBuddy -c print /path/to/some/plist/file
очистить (или создать) файл plist и установить CFBundleIdentifier
к com.apple.plistbuddy
PlistBuddy -c 'clear dict' \
-c 'add :CFBundleIdentifier string' \
-c 'set :CFBundleIdentifier com.apple.plistbuddy' \
/path/to/some/plist/file
Вы также можете использовать osascript запускать команды из Системные события’« Property List Suite ». Это, конечно, не так удобно запускать из командной строки оболочки, но было бы хорошо для более автоматизированных проверок и модификаций (то есть выполняемых сценарием). Команды из этого набора предлагают доступ на запись в 10.5 и более поздних версиях (10.4 был доступен только для чтения).