Подтвердить что ты не робот

Изменение Plist из командной строки на Mac с использованием значений по умолчанию

Кто-нибудь знает, как изменить файл Plist из командной строки, используя defaults? В настоящее время существует два словаря под массивом URL types; Мне нужно добавить еще один.

enter image description here

Каждая попытка, которую я попробовал, либо заменила весь словарь, либо создала новый массив под названием URL types вместо его редактирования. Любые идеи о том, как это можно сделать по умолчанию (консольное приложение для Mac), а не PlistBuddy?

4b9b3361

Ответ 1

Откройте Info.plist в текстовом редакторе, чтобы увидеть фактические идентификаторы.

defaults write Absolute/Path/to/Info.plist CFBundleURLTypes -array-add '<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLName</key>
<string>Mac App Store URL</string>
<key>CFBundleURLSchemes</key>
<array>
<string>macappstore</string>
</array>
</dict>'

pbpaste | pl pbpaste | pl преобразует XML в формат старого стиля.

defaults write Info.plist CFBundleURLTypes -array-add '{CFBundleTypeRole=Viewer; FBundleURLName="Mac App Store URL";CFBundleURLSchemes=(macappstore);}'

Ответ 2

Списки свойств XML можно просматривать в текстовом редакторе непосредственно, как предлагает ответ Лаури.

Списки бинарных свойств (обнаруженные во многих приложениях Apple для доставки) необходимо сначала преобразовать в формат списка свойств XML.

plutil можно использовать для этого в любом направлении. Будьте осторожны, хотя, поскольку список свойств изменен на месте, поэтому сначала вы хотите сделать копию списка свойств.

plutil -convert xml1 binary-property-list-to-convert.plist

И чтобы преобразовать его обратно в двоичный:

plutil -convert binary1 XML-property-list-to-convert.plist

Ответ 4

Используйте тип значения -array-add:

defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'