是否有人知道如何使用默认值从命令行修改Plist文件?
目前URL types
数组下有两个词典;我需要添加另一个。
我尝试的每个命令都要么替换整个字典,要么创建一个名为URL types
的新数组,而不是编辑它。有关如何在默认设置(控制台Mac应用程序)和不 PlistBuddy中完成此操作的任何想法?
答案 0 :(得分:20)
XML属性列表可以直接在文本编辑器中查看,如上面Lauri的回答所示。
二进制属性列表(在许多Apple自己的发货应用程序中找到)需要首先转换为XML属性列表格式。
可以使用plutil在任一方向上执行此操作。尽管属性列表已经过修改,但要小心,因此您希望首先制作属性列表的副本。
plutil -convert xml1 binary-property-list-to-convert.plist
并将其转换回二进制文件:
plutil -convert binary1 XML-property-list-to-convert.plist
答案 1 :(得分:16)
在文本编辑器中打开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
将XML转换为旧式格式。
defaults write Info.plist CFBundleURLTypes -array-add '{CFBundleTypeRole=Viewer; FBundleURLName="Mac App Store URL";CFBundleURLSchemes=(macappstore);}'
答案 2 :(得分:7)
OSX拥有PlistBuddy,这使得这更加简单。
另请参阅:https://github.com/kevinSuttle/OSXDefaults/blob/master/REFERENCE.md
答案 3 :(得分:6)
使用-array-add
值类型:
defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'