modyfikowanie Plist z wiersza poleceń na Macu przy użyciu domyślnych

Czy ktoś wie jak zmodyfikować plik Plist z linii poleceń używając defaults ? Obecnie pod tablicą URL types znajdują się dwa słowniki; muszę dodać kolejny.

Tutaj wpisz opis obrazka

Każde polecenie, które próbowałem, zastępowało cały słownik lub tworzyło nową tablicę o nazwie URL types zamiast ją edytować. Jakieś pomysły, jak to zrobić w domyślnych (konsola Mac app) i Nie PlistBuddy?

4 answers

Otwórz Info.plist w edytorze tekstu, aby zobaczyć rzeczywiste identyfikatory.

defaults write ~/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 konwertuje XML do formatu starego stylu.

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

 14
Author: user495470,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 10:35:13

Listy właściwości XML można przeglądać bezpośrednio w edytorze tekstu, jak sugeruje powyższa odpowiedź Lauriego.

Binarne listy właściwości (spotykane w wielu własnych aplikacjach wysyłkowych Apple) muszą być najpierw przekonwertowane do formatu listy właściwości XML.

Plutil może być użyty do tego, w obu kierunkach. Zachowaj jednak ostrożność, ponieważ lista właściwości jest modyfikowana, więc najpierw chcesz zrobić kopię listy właściwości.

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

I przekonwertować go z powrotem na binarny:

plutil -convert binary1 XML-property-list-to-convert.plist
 19
Author: ctpenrose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-31 17:19:49
 7
Author: Kevin Suttle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-06 18:28:53

Użyj typu wartości -array-add:

defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'
 6
Author: Gordon Davisson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-06 14:50:42