Назад | Перейти на главную страницу

Как остановить компиляцию / преобразование файлов .plist в OS X

В настоящее время я настраиваю несколько клиентов и серверов OS X, и мне часто приходится открывать / редактировать файлы .plist. Раздражающе OS X компилирует эти файлы plist в двоичный формат, предположительно, чтобы ускорить их чтение из соображений производительности, и это здорово, за исключением того, что мне нужно преобразовывать их обратно в xml каждый раз, когда мне нужно их открывать, что для меня важнее, чем незначительный повышение производительности.

Так что мне нужно либо:

  1. Используйте редактор Plist - мне он не нравится, и он требует установки Xcode - не всегда возможно на клиентской машине.
  2. Преобразуйте их с помощью plutil: 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 был доступен только для чтения).